草庐IT

final-class

全部标签

java - 语法 `new Class[]{}` 是如何工作的?

在这个beginnersguidetoDependencyInjection的第一个代码示例中我遇到了一些我不确定自己是否完全理解的新结构://InstantiateCabAgency,andsatisfyitsdependencyonanairlineagency.Constructorconstructor=cabAgencyClass.getConstructor(newClass[]{AirlineAgency.class});cabAgency=(CabAgency)constructor.newInstance(newObject[]{airlineAgency});new

java - 直接赋final变量和在构造函数中赋final变量有区别吗?

final变量value的这两种初始化有区别吗?classTest{finalintvalue=7;Test(){}}和classTest{finalintvalue;Test(){value=7;}}--编辑:一个更复杂的例子,涉及子类。在这种情况下,“0”会打印到标准输出,但如果我直接分配值,则会打印7。importjavax.swing.*;importjava.beans.PropertyChangeListener;classTestBoxextendsJCheckBox{finalintvalue;publicTestBox(){value=7;}publicvoidadd

java - 如何在 finally block 中调用 System.exit(0) 后运行代码

我有三个类,比如alpha、beta、gamma,这三个类中的每一个都有一个main方法。alpha和beta类在它们的main方法中都有一个try...catch...finallyblock,如下所示:publicclassalpha{publicstaticvoidmain(String[]args){try{Dosomething;}catch(Exceptionex){ex.printStackTrace();}finally{System.exit(0);}}}publicclassbeta{publicstaticvoidmain(String[]args){try{Do

Java:无法访问扩展子类中父类(super class)的 protected 成员

我想就此进行一些讨论,但我无法为我的案例推断出答案。仍然需要帮助。这是我的代码:packageJustRandomPackage;publicclassYetAnotherClass{protectedintvariable=5;}packageFirstChapter;importJustRandomPackage.*;publicclassATypeNameProgramextendsYetAnotherClass{publicstaticvoidmain(String[]args){YetAnotherClassbill=newYetAnotherClass();System.o

java - Class.getDeclaredFields() 是否以一致的顺序返回成员?

文档将该方法描述为:Theelementsinthearrayreturnedarenotsortedandarenotinanyparticularorder但是我不确定这是否意味着每次应用程序调用例程时顺序都不一致。我正在寻找一种方法来为找到的每个字段配对唯一ID-但它还需要与下次运行应用程序时保持一致,即连续生成相同的ID。我只想遍历找到的每个字段并为每个迭代的元素增加一个计数器。然后将特定元素的ID分配给计数器等于的任何值,这些“id”不一致,但如果字段未以一致的顺序返回。 最佳答案 顺序不需要在运行中保持稳定。然而,该字段

java - 如何初始化循环依赖(final 字段相互引用)?

你如何初始化它:classA{finalBb;A(Bb){this.b=b;}}classB{finalAa;B(Aa){this.a=a;}}DI框架、反射、更好的设计?动机和用例(已添加):我的特定用例是简化A和B子类中的字段访问。因此,我将它们注入(inject)到派生类中的字段中以快速引用它们,而无需在每个子类中显式声明。还有关于DI的建议,对象最好是不可变的:Guicebestpracticesandanti-patterns. 最佳答案 你可以使用工厂方法classA{finalBb;A(Bb){this.b=b;}}a

java - 当我定义接口(interface)方法的参数 final 时,我需要在实现中重复 final 吗?

这个问题在这里已经有了答案:Finalargumentsininterfacemethods-what'sthepoint?(5个答案)关闭9年前。所以我需要在下面的情况下重复final吗?interfaceFoo{voidmeth(finalBarbar);}publicBazimplementsFoo{@Overridevoidmeth(/*isitfinal?*/Barbar){}}问题不仅是接口(interface)继承,还有类继承——我猜答案是一样的

java - 在 Java 中如何将对象标记为已完成(以便不会第二次调用 finalize 方法)?

主要问题在主题中,但让我展示一下我对Java终结过程的看法,以便我可以问你更多。好吧,gc通过标记所有Activity对象来开始垃圾收集。当所有可达对象都标记为“Activity”时。所有其他对象都不可访问。下一步是检查每个无法到达的对象,并确定是可以立即清除还是应该首先确定。如果对象的finalize方法有主体,那么gc会考虑下一个方法,那么这个对象是可终结的,应该被终结;如果对象的finalize方法有一个空主体(protectedvoidfinalize(){}),那么它是不可终结的,可以立即被gc清除。(我说得对吗?)所有可终结的对象将被放入同一个队列中,以便稍后被一个一个地终

java - Play Framework : How do I change active class on route change

我在我的项目中使用PlayFramework2forJava和BootstrapHelper,我想在边栏链接点击时应用active类。我使用侧面导航栏进行导航,默认情况下,一个链接在页面加载时始终具有active类,所以这就是为什么每次只有一个链接突出显示为Activity链接,但是如何更改class="active"在路由或链接更改时,有什么方法可以检查路由路径是我们的htmlscala模板文件。这是我的侧边栏导航代码。Menu1Menu2Menu3这是我的路由文件GET/menu1com.demo.project.controllers.DemoController.menu1()

java - 如果我将变量声明为其抽象父类(super class),Scala 的 @throws 注释将在 javac 中被忽略

在Java中,如果原始抽象方法不存在异常(重写方法不抛出异常),则不能指定重写抽象方法抛出。但是在Scala你可以做到这一点,因为它没有检查异常。很好,但是如果您使用@throws注释应该会提示Java编译器正在发生的事情,对吗?鉴于此Scala代码:packagemyscalaabstractclassSFoo{defbar():Unit}classSFoobarextendsSFoo{@throws[Exception]overridedefbar():Unit={thrownewException("hithere")}}我有两个不同的Java程序,其中一个将在运行时编译并运行到