草庐IT

public_private

全部标签

java - 枚举是否比 public static final 常量更难维护?

我最近与friend讨论枚举与公共(public)静态最终常量。我告诉他publicstaticfinalconstants比枚举更易于维护,有时速度更快(android开发人员文档证实了这一点),也更方便。我还说过,使用枚举也会失去功能:您不能扩展枚举。您不能实例化枚举。然后他说,如果您需要实例化或扩展枚举,则不应使用枚举。然后我回答说,这就是为什么我们应该只使用常量,因为它更易于维护;如果在项目中期我们需要实例化一个枚举或扩展它怎么办?然后我们将不得不改变一切。为了说明我的观点而制作的枚举与常量示例:publicenumWeekDay{/**Wewillstartat1fordem

java - 如何通过 Mockito 对被测类的私有(private)方法进行 stub

假设我们有一个名为SomeClass的java类publicclassSomeClass{privatebooleanisMethod(){returnfalse;}publicvoidsendRequest(Stringjson,Stringtext){intmessageId;if(isMethod()){messageId=getMessageId(json);sendMessage(messageId,text);}else{thrownewIllegalArgumentException();}}privatevoidsendMessage(intmessageId,Stri

java - 检查 IPv4 地址是否在私有(private)范围内

在Python中,使用IPy模块您可以执行以下操作:>>>ip.iptype()'PRIVATE'是否有一个库或简单的方法可以在Java中做同样的事情? 最佳答案 似乎不完全是,但是InetAddress有一些isXX()方法,例如:isAnyLocalAddress()和isSiteLocalAddress() 关于java-检查IPv4地址是否在私有(private)范围内,我们在StackOverflow上找到一个类似的问题: https://stack

java - 为什么 private static field = new Singleton 在 Java 中不懒惰?

我看了很多关于Singleton的文章,其中大部分作者都说Java中Singleton的这种变体:publicclassSingleton{privatestaticSingletoninstance=newSingleton();privateSingleton(){}publicstaticSingletongetInstance(){returninstance;}}是不懒惰(然后是EAGER)。但我不明白为什么,Singleton()构造函数只会在Singleton类初始化时被调用。我知道几个可以触发类初始化的原因:将new与构造函数一起使用(但在这种情况下,构造函数是私有(p

Java secondary not public 类的使用会产生错误 "Type is not Visible",即使访问的方法在主类中是公共(public)的

我有一个Main.java文件:publicclassMain{privateEntityDrawerentityDrawer;publicvoidsetEntityDrawer(EntityDrawerentityDrawer){this.entityDrawer=entityDrawer;}publicEntityDrawergetEntityDrawer(){returnentityDrawer;}}classEntityDrawer{privateEmpleadoempleado;publicEmpleadogetEmpleado(){returnempleado;}publi

java - 将公共(public)项目变成私有(private)项目 - Java、IntelliJ

我只是想知道是否有一种方法可以通过一个简单的按钮或其他东西使公共(public)项(字段、方法)成为私有(private)publicGroupwQ;publicGroupwA1;publicGroupwA2;publicGroupwA3;publicGroupwG1;publicGroupwG2;publicGroupwG3;publicGroupwS1;publicGroupwS2;publicGroupwB1;publicGroupwB2;例如,一步将所有这些字段设为私有(private),而无需将公共(public)替换为私有(private)。顺便说一句,我使用Intelli

java - 我应该始终对类字段使用私有(private)访问修饰符吗?

目前我们正在运行checkstyle在我们的代码库中,它会标记所有不使用private访问修饰符的非静态类字段。这是一个有效的checkstyle规则,还是在某些情况下需要非私有(private)字段?例如,我认为JUnit测试用例在同一个包中创建的原因是它们可以使用default访问修饰符访问字段? 最佳答案 面向对象编程的主要特征之一是信息隐藏/封装。这意味着类只允许通过接口(interface)访问成员变量:getter和setter方法。因此其他类无法访问成员变量并以不需要的方式修改它们。所以checkstyle规则是有效的

java - 在公共(public)电子邮件中添加附件作为流

我正在使用ApacheCommonsEmail在我的网络应用程序中运行良好。现在我需要通过附件发送文档,我遇到了一些问题。我需要从数据库中获取文件(作为BLOB)并将其添加为附件。CommonsEmail似乎不支持流附件,它只从路径中获取文件。我需要知道这里的最佳做法是什么?我是否还需要将文件保存在目录结构中,以便它适用于CommonsEmail?,或者,有什么方法可以使用流式传输内容本身以添加为附件? 最佳答案 使用MultiPartEmail#attach(DataSourceds,Stringname,Stringdescri

java - 通过 Java 中的反射设置私有(private)字段的最短、最好、最干净的方法是什么?

您好,我已经在J​​ava中使用过反射。但是,如果您使用的是Java标准(例如注入(inject)私有(private)字段),则必须编写大量代码才能完成工作。在Java对象中注入(inject)私有(private)字段的最短方法是什么?在广泛使用和生产就绪的库中是否有实现? 最佳答案 在不使用外部库的情况下,您需要:获取Field实例将字段实例设置为可访问设置新值如下:Fieldf1=obj.getClass().getDeclaredField("field");f1.setAccessible(true);f1.set(ob

java - 找到两个数组之间的非公共(public)元素

在一次采访中,它被要求找到两个字符串数组之间的非公共(public)元素。Eg:Stringa[]={"a","b","c","d"};Stringb[]={"b","c"};O/pshouldbea,d我已经回答了在Java中Set是使用HashTable实现的问题。使用Set的代码要简单得多:String[]a={"a","b","c","d"};String[]b={"b","c"};Setset=newHashSet(a.length);for(Strings:a){set.add(s);}for(Strings:b){set.remove(s);}returnset;现在我的