草庐IT

Private_dirty

全部标签

java - 我们如何测试包私有(private)类?

我正在阅读EffectiveJava一书,在Item13:Minimizetheaccessibilityofclassesandmembers中提到:Tofacilitatetesting,youmaybetemptedtomakeaclass,interface,ormembermoreaccessible.Thisisfineuptoapoint.itisacceptabletomakeaprivatememberofapublicclasspackage-privateinordertotestit,butitisnotacceptabletoraisetheaccessibi

java - 在复制构造函数中访问另一个对象的私有(private)字段——真的有问题吗?

在我的Java应用程序中,我有一些像这样的复制构造函数publicMyClass(MyClasssrc){this.field1=src.field1;this.field2=src.field2;this.field3=src.field3;...}现在Netbeans6.9对此发出警告,我想知道这段代码有什么问题吗?我的担忧:使用getter可能会引入不需要的副作用。新对象可能不再被视为原始对象的副本。如果建议使用getter,那么如果对新实例也使用setter不是更一致吗?编辑:实际警告是“访问另一个对象的私有(private)字段”,Netbeans提供的唯一可用操作是添加一个

java - 外部类访问包私有(private)方法

假设我的包org.jake中有一个类,它有一个具有默认访问权限(无修饰符)的方法。然后该方法仅在包内可见。但是,当有人收到我的框架的jar时,如何阻止他们编写一个新类,将其包声明为org.jake,并使用我所谓的不可见方法?换句话说,我能做些什么来防止这种情况发生吗? 最佳答案 你可以sealthepackage在你的jar文件中。虽然它不是防弹的。从安全的角度来看,最主要的是不要依赖访问修饰符等,真的。如果有人以不受限制的权限运行代码,他们将可以访问各种东西。访问修饰符确实有助于阻止人们不小心搬起石头砸自己的脚。如果有人愿意将类放

java - 令人困惑 "override a private method"

关于这段代码我有两个问题publicclassOverride{privatevoidf(){System.out.println("privatef()");}publicstaticvoidmain(String[]args){Overridepo=newDerived();po.f();}}classDerivedextendsOverride{publicvoidf(){System.out.println("publicf()");}}/**Output:privatef()*///:~1)函数f如何在Overridepo的引用上可见;2)为什么输出是“privatef()”

java - 如何从子调用父私有(private)方法?

这个问题在这里已经有了答案:Howcanaderivedclassinvokeprivatemethodofbaseclass?(7个答案)关闭7年前。publicclassA{privateintgetC(){return0;}}publicclassBextendsA{publicstaticvoidmain(Stringargs[]){B=newB();//hereIneedtoinvokegetC()}}能否请您告诉我是否可以通过java中的反射来执行sush操作?

java - 抽象类中的私有(private)构造函数

在Java中,在抽象类中使用私有(private)构造函数的目的是什么?在一次审查中我遇到了这个问题,我很好奇,我们需要在什么情况下以这种方式使用构造函数?我认为它可以与抽象类中的另一个构造函数配对使用,但这很简单。也可用于构造超越抽象类的静态内部类。也许还有更优雅的用法? 最佳答案 如果private构造函数是该类的唯一构造函数,那么原因很明确:防止子类化。一些类仅用作静态字段/方法的持有者,并且不想被实例化或子类化。请注意,在这种情况下,abstract修饰符是多余的——有或没有它都不可能进行实例化。正如@JBNizet在下面指

java - Hibernate:通过反射持久属性访问字段 [private java.lang.Integer] 时出错

当我尝试获取实体属性时遇到奇怪的问题:Hibernate:selecttarifklsk0_.IDasID1_12_0_,tarifklsk0_.FK_TARIFasFK_TARIF2_12_0_,tarifservp1_.FK_TARIFasFK_TARIF2_11_1_,tarifservp1_.IDasID1_11_1_,tarifservp1_.IDasID1_11_2_,tarifservp1_.FK_TARIFasFK_TARIF2_11_2_,tarifservp1_.N1asN3_11_2_fromTR.TARIFXKLSKtarifklsk0_leftouterjoi

JDK 7 中有关私有(private)成员访问的 javac 行为更改

此代码使用javacJDK版本1.6.0_33-b03-424编译正常,但使用javacJDK版本1.7.0_06无法编译。publicclassTest{privatefinalinti=0;voidtest(Objecto){if(getClass().isInstance(o)){System.out.println(getClass().cast(o).i);}}}javac输出是:Test.java:6:error:iinTestisdefinedinaninaccessibleclassorinterfaceSystem.out.println(getClass().cas

java - Jackson,使用私有(private)字段和没有注释的 arg-constructor 反序列化类

是否可以使用Jackson反序列化为具有私有(private)字段和自定义参数构造函数的类,而无需使用注释且无需修改类?我知道在Jackson中使用这种组合是可能的:1)Java8,2)使用“-parameters”选项编译,以及3)参数名称与JSON匹配。但默认情况下在GSON中也可以不受所有这些限制。例如:publicclassPerson{privatefinalStringfirstName;privatefinalStringlastName;privatefinalintage;publicPerson(StringfirstName,StringlastName,inta

java - SonarQube 为 lambda 使用提供未使用的私有(private)方法问题

我有以下逻辑;..if(list.stream().filter(MyClass::isEnabled).filter(this::isActive).count()>0){//dosmth}..privatebooleanisActive(MyClassobj){returnbool;}如您所见,流结构中使用了isActive方法,但是当我在Jenkins上构建此类时,我从SonarQube得到了未使用的私有(private)方法问题,它说你应该删除这个多余的私有(private)方法。这是一个错误吗?如果不是,为什么他们还没有在他们的分析结构中包含lambda逻辑?显然,唯一的解决