草庐IT

private-messaging

全部标签

java - 为什么使用私有(private)锁而不是内部锁?

在阅读有关同步的内容时,我遇到了封装可变状态的“监视器模式”。下面是示例代码publicclassMonitorLock{privatefinalObjectmyLock=newObject();Widgetwidget;voidsomeMethod(){synchronized(myLock){//Accessormodifythestateofwidget}}用私有(private)锁代替内在锁在任何方面都更好吗? 最佳答案 是的-这意味着您可以看到所有可能获得该锁的代码(抛开反射的可能性)。如果您锁定this(我假设您指的是“

java - 如何抑制和验证私有(private)静态方法调用?

我目前在JUnit测试中遇到困难,需要一些帮助。所以我用静态方法得到了这个类,它将重构一些对象。为了简单起见,我举了一个小例子。这是我的工厂类:classFactory{publicstaticStringfactorObject()throwsException{Strings="HelloMaryLou";checkString(s);returns;}privatestaticvoidcheckString(Strings)throwsException{thrownewException();}}这是我的测试类:@RunWith(PowerMockRunner.class)@P

java - 在 Java 中修改私有(private)实例变量

这个问题在这里已经有了答案:JavaPrivateFieldVisibility(6个答案)关闭8年前。所以,我在一本Java书中看到了一个例子:publicclassAccount{privateStringname;privatedoublebalance;privateintacctNumber;publicAccount(){}publicbooleanequals(AccountanotherAcc){return(this.name.equals(anotherAcc.name)&&(this.balance==anotherAcc.balance)&&(this.acct

java - LocalDate 在 LocalDate 中具有私有(private)访问权限

这个问题在这里已经有了答案:Whatisthedifferencebetweenpublic,protected,package-privateandprivateinJava?(29个答案)关闭6年前。我想知道某人的年龄。我正在关注此处给出的答案:HowdoIcalculatesomeone'sageinJava?这是我目前所拥有的:publicvoidsetDOB(Stringday,Stringmonth,Stringyear){LocalDatebirthDate=newLocalDate(Integer.parseInt(year),Integer.parseInt(mont

Java - 有一个方法可以将私有(private)字段值传递给另一个类的方法吗?

我有一个包含大量字段的类,所有字段都是私有(private)的(子类访问一些protectedgetter)。我需要将这些字段中的大部分传递给另一个类中的方法,该方法将格式化它们并生成输出。在类中有一个方法可以传递所有的字段吗?或者这些情况是否表明我应该在这两个类之间实现一些其他关系,因为它们因此看起来紧密耦合?更多信息:A类代表Employees,B类的唯一职责是格式化程序的输出。 最佳答案 您是在问是否可以执行以下操作?publicclassA{privateBmyB=newB();privateStringmyUnformat

java - 什么时候在 Java 中使用 package-private?

这个问题在这里已经有了答案:ProsandconsofpackageprivateclassesinJava?(8个答案)关闭9年前。我喜欢任何语言的访问控制,但我发现在Java中我几乎从不(如果有的话)使用package-private访问修饰符(或缺少访问修饰符)。我意识到内部类可以是private,protected,或者package-private,但是外部类只能是package-private或public。为什么外部类可以是package-private而不是protected?将类/方法/字段限制在整个包中而不是子类中有什么好处?

java - 私有(private)成员访问 Java

是类级别还是对象级别的私有(private)成员访问。如果是对象级别的,那么下面的代码应该是编译不过的classPrivateMember{privateinti;publicPrivateMember(){i=2;}publicvoidprintI(){System.out.println("iis:"+i);}publicvoidmessWithI(PrivateMembert){t.i*=2;}publicstaticvoidmain(Stringargs[]){PrivateMembersub=newPrivateMember();PrivateMemberobj=newPri

java - hibernate 如何访问私有(private)字段?

hibernate如何访问java类的私有(private)字段/方法,例如设置@Id?谢谢 最佳答案 正如Crippledsmurf所说,它使用了反射。参见Reflection:BreakingalltheRules和Hibernate:PreservinganObject'sContract. 关于java-hibernate如何访问私有(private)字段?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

java - 在覆盖 toString 时,是使用 getter 方法更好还是直接访问私有(private)字段更好?

这个问题在这里已经有了答案:Isitinananti-patterntoalwaysusegetandsetmethodstoaccessaclass'sownmemberfields?[duplicate](11个答案)关闭9年前。我见过这两种方法的使用,但从未听说过出于任何特定原因,一种方法优于另一种方法。publicStringtoString(){returnthis.field1+""+this.field2;}对比publicStringtoString(){returngetField1()+""+getField2();}我在我的示例中使用了字符串连接以保持代码简洁。

java - 私有(private)类单元测试

如何对在java中分类的私有(private)(意味着具有包可见性)进行单元测试?我有一个包,这个包里只有一个类是public的,其他类都是private的。如何用单元测试覆盖其他类?我想在restingjar中包含单元测试。 最佳答案 在同一个包中创建单元测试类。例如,如果com.example.MyPrivateClass位于src/main/java/com/example/MyPrivateClass.java然后测试类将在同一个包com.example.MyPrivateClassTestCase中,并将位于src/tes