这个问题在这里已经有了答案:Isitinananti-patterntoalwaysusegetandsetmethodstoaccessaclass'sownmemberfields?[duplicate](11个答案)关闭9年前。我见过这两种方法的使用,但从未听说过出于任何特定原因,一种方法优于另一种方法。publicStringtoString(){returnthis.field1+""+this.field2;}对比publicStringtoString(){returngetField1()+""+getField2();}我在我的示例中使用了字符串连接以保持代码简洁。
如何对在java中分类的私有(private)(意味着具有包可见性)进行单元测试?我有一个包,这个包里只有一个类是public的,其他类都是private的。如何用单元测试覆盖其他类?我想在restingjar中包含单元测试。 最佳答案 在同一个包中创建单元测试类。例如,如果com.example.MyPrivateClass位于src/main/java/com/example/MyPrivateClass.java然后测试类将在同一个包com.example.MyPrivateClassTestCase中,并将位于src/tes
假设我们有一个名为SomeClass的java类publicclassSomeClass{privatebooleanisMethod(){returnfalse;}publicvoidsendRequest(Stringjson,Stringtext){intmessageId;if(isMethod()){messageId=getMessageId(json);sendMessage(messageId,text);}else{thrownewIllegalArgumentException();}}privatevoidsendMessage(intmessageId,Stri
在Python中,使用IPy模块您可以执行以下操作:>>>ip.iptype()'PRIVATE'是否有一个库或简单的方法可以在Java中做同样的事情? 最佳答案 似乎不完全是,但是InetAddress有一些isXX()方法,例如:isAnyLocalAddress()和isSiteLocalAddress() 关于java-检查IPv4地址是否在私有(private)范围内,我们在StackOverflow上找到一个类似的问题: https://stack
我看了很多关于Singleton的文章,其中大部分作者都说Java中Singleton的这种变体:publicclassSingleton{privatestaticSingletoninstance=newSingleton();privateSingleton(){}publicstaticSingletongetInstance(){returninstance;}}是不懒惰(然后是EAGER)。但我不明白为什么,Singleton()构造函数只会在Singleton类初始化时被调用。我知道几个可以触发类初始化的原因:将new与构造函数一起使用(但在这种情况下,构造函数是私有(p
我只是想知道是否有一种方法可以通过一个简单的按钮或其他东西使公共(public)项(字段、方法)成为私有(private)publicGroupwQ;publicGroupwA1;publicGroupwA2;publicGroupwA3;publicGroupwG1;publicGroupwG2;publicGroupwG3;publicGroupwS1;publicGroupwS2;publicGroupwB1;publicGroupwB2;例如,一步将所有这些字段设为私有(private),而无需将公共(public)替换为私有(private)。顺便说一句,我使用Intelli
目前我们正在运行checkstyle在我们的代码库中,它会标记所有不使用private访问修饰符的非静态类字段。这是一个有效的checkstyle规则,还是在某些情况下需要非私有(private)字段?例如,我认为JUnit测试用例在同一个包中创建的原因是它们可以使用default访问修饰符访问字段? 最佳答案 面向对象编程的主要特征之一是信息隐藏/封装。这意味着类只允许通过接口(interface)访问成员变量:getter和setter方法。因此其他类无法访问成员变量并以不需要的方式修改它们。所以checkstyle规则是有效的
您好,我已经在Java中使用过反射。但是,如果您使用的是Java标准(例如注入(inject)私有(private)字段),则必须编写大量代码才能完成工作。在Java对象中注入(inject)私有(private)字段的最短方法是什么?在广泛使用和生产就绪的库中是否有实现? 最佳答案 在不使用外部库的情况下,您需要:获取Field实例将字段实例设置为可访问设置新值如下:Fieldf1=obj.getClass().getDeclaredField("field");f1.setAccessible(true);f1.set(ob
假设有一个类,其所有构造函数都声明为私有(private)的。例如:publicclassThis{privateThis(){}publicsomeMethod(){//somethinghere}//somemore--nootherconstructors}据我所知,将所有构造函数设为私有(private)类似于将“This”类声明为final——这样它就无法扩展。但是,我收到的Eclipse消息给我的印象是这是可能的——可以扩展全构造函数私有(private)类。看看这个:当我尝试用类似的东西扩展这个类时publicclassThatextendsThis{...}Eclips
我有两个类:publicclassClass1{}publicclassClass2{privatevoidsimpleMethod(){/*...*/}}在Class2中,我有私有(private)方法simpleMethod(),我想在同一项目的Class1中使用它。我不想将此方法重命名为public因为我不想在我的API中显示它。我可以创建public方法而不在API中显示它吗?或者,还有什么? 最佳答案 如果Class1和Class2都在同一个包中,您可以简单地删除private修饰符,使方法成为package-privat