草庐IT

static成员

全部标签

java - 了解使用 Super 访问父类(super class)成员

我是引用java语言规范来理解super的使用。虽然我了解第一个用例,即Theformsuper.IdentifierreferstothefieldnamedIdentifierofthecurrentobject,butwiththecurrentobjectviewedasaninstanceofthesuperclassofthecurrentclass.我似乎无法理解以下用例:TheformT.super.IdentifierreferstothefieldnamedIdentifierofthelexicallyenclosinginstancecorrespondingt

java - 如何使用 Clojure 的 gen-class 创建多个 Java 成员变量

Thisanswer关于Clojure-Java互操作的一个非常古老的问题解释了如何使用gen-class和:state和:init关键字来创建一个单一的可从Java访问的公共(public)实例变量。如果您只需要一个数据对Java类可用,或者如果您可以要求Java类使用访问器函数来读取,例如,存储在状态变量中的映射,这就足够了。此方法还允许更改数据,例如通过将atom存储在状态变量中。如果我想创建多个在Java类中可直接读取的实例变量怎么办?这可能吗?例如,我可以编译以下文件并执行Bar类,然后看到foo.bar的值42被打印出来。Foo.clj:(nsstudents.Foo(:g

java - java中为什么限制在内部类中声明静态成员变量?

考虑下面的例子在内部类中继承静态变量没有任何限制,为什么我们在内部类中只能声明静态成员变量?publicclassOuter{publicclassInner{publicstaticStringnotAllowed;/*AbovelinegivefollowingcompilationerrorThefieldnotAllowedcannotbedeclaredstaticinanon-staticinnertype,unlessinitializedwithaconstantexpression*/}}但是现在如果我的内部类扩展了其他包含静态变量的类,那么这就可以正常工作了。考虑以

java - 当类具有与导入方法同名的方法时,import static 不起作用

我有一个静态导入org.junit.Assert.assertEquals方法的Junit4测试用例。importstaticorg.junit.Assert.assertEquals;在这个类中,我创建了一个实用方法来断言一些复杂的内部类,这些类没有实现equals(并且也很难实现)。privatevoidassertEquals(MyObjo1,MyObjo2){assertEquals(o1.getSomething(),o2.getSomething());assertEquals(o1.getSomethingElse(),o2.getSomethingElse());...

java - 为什么 Spring 不将我的 @Autowired 成员连接到依赖的 jar 中?

我正在使用Spring3.1构建一个GoogleAppEngine应用程序,但在我的一个jar中获取成员时遇到了问题。我有三个项目:服务器server.modelserver.persistence我有一个ant构建脚本,这样当我的工作区构建时,它会为server.model和server.persistence创建jar,并将它们放在正确的lib目录中对于server项目。在server中,我可以从server.model和server.persistence中Autowiring东西,但在server.model我的server.persistencebean没有连接,即使它们与s

java - 如何声明具有多个具有重要关系的泛型类型的成员?

这是我想在我的java代码中写的内容:private,RextendsResult>MyTypemember;然而,这是无效的语法。所以我最后写:privateMyType,?extendsResult>member;但这忽略了从Result派生的两个类是相同的事实。我的类方法都强制执行这种关系,所以我可以确定MyType强制执行它,但在某些情况下我仍然必须不安全地类型转换member。更多详情这是我想要做的事情的精确版本,尽管它更加严格:我希望我能做到:private,RextendsResult>Map,ActionHandler>handlers;相反,我必须这样做:privat

java - 模拟/PowerMock : how to reset a mocked static variable in SUT?

我讨厌将单元测试引入遗留代码库,但我不得不这样做。到目前为止,我使用Mockito和PowerMock成功地将单元测试引入了遗留代码库。在我遇到这种情况之前工作得很好:在SUT中,有几个静态变量(我在PowerMock的帮助下模拟了它们,模拟静态方法和模拟构造函数)。现在在第一个测试方法中,一切正常,模拟的静态变量返回了预期的输出值。但是在随后的测试方法中,模拟的静态对象总是返回在第一次测试中设置的值,尽管我在测试之前确实对其调用了reset()。//legacycodebase:publicclassSUT{privatestaticCollaborator1c1=null;priv

java - static 修饰符是否会更改 java 中类成员的访问级别?

我正在阅读用于Java7认证的OCA和OCP这本书,我正在尝试使用Java8练习这本书,我注意到一些有线的东西。我的Class1类如下:packagecert;publicclassClass1{protectedstaticvoidimportantMethod(){System.out.println("importantMethod()methodofClass1classTEST\n");}importantMethod()方法的修饰符是protectedstatic包是cert如您所见,如书中所述我希望另一个包中的另一个类,在我的例子中显示为Class2,只能通过继承访问im

java - java中的 "invoking a static method with class name"和 "invoking a static method with an object"有什么区别吗?

在java中我们可以“用类名调用一个静态方法”也可以“用一个对象调用一个静态方法”java中“用类名调用静态方法”和“用对象调用静态方法”有什么区别? 最佳答案 没有区别,但建议以静态方式调用static方法,即使用ClassName。如果不这样做,静态分析仪通常会报告错误。这里要理解的重要一点是static方法是无状态的,因此使用实例调用它们会使阅读您的代码的人感到困惑。因为无论您使用什么实例调用static方法,结果都将保持不变。这是因为static方法属于类而不属于对象。 关于ja

java - 为什么 protected 实例成员在不同包的子类中不可见,但 protected 类成员是?

这个问题在这里已经有了答案:UnderstandingJava'sprotectedmodifier(6个答案)关闭5年前。packageone;publicclassA{protectedintfirst;protectedstaticintsecond;}packagetwo;importone.A;publicclassBextendsA{publicvoidsomeMethod(){this.first=5;//worksasexpectedB.second=6;//worksAa=newA();//a.first=7;doesnotcompile//worksjustfine