草庐IT

final_test

全部标签

java - 如果一个类被声明为 final 是否有必要将方法声明为 final

我正在阅读一些内容,需要对最终类和方法进行一些说明。我的理解是,将一个类声明为final会阻止该类被扩展。因此,是否有必要将最终类中的方法声明为最终的?在我看来,如果类不能扩展,则没有必要将方法声明为final。 最佳答案 如果类被声明为final,则没有必要将方法声明为final,因为类已经不能被扩展。 关于java-如果一个类被声明为final是否有必要将方法声明为final,我们在StackOverflow上找到一个类似的问题: https://stac

java - 如果 catch block 或 finally block 有一些异常会发生什么?

这个问题在这里已经有了答案:Exceptionthrownincatchandfinallyclause(12个答案)关闭8年前。在异常处理中,如果catchblock或者finallyblock出现Exception会怎样?

java - Gradle:如何列出所有 "given tests"

我试试下面的代码:roroco@roroco~/Dropbox/jvs/ro-idea$gradletest--tests"ro.idea.ToggleTest.testIsAd":ro:compileJavaUP-TO-DATE:ro:processResourcesUP-TO-DATE:ro:classesUP-TO-DATE:ro:jar:compileJava:processResourcesUP-TO-DATE:classes:compileTestJava:processTestResourcesUP-TO-DATE:testClasses:test:ro:compileT

java - 同步:为什么优先锁定一个private final静态对象而不是类的类对象?

简单问题:为什么这是首选:publicclassFoo{finalprivatestaticObjectfoo=newObject();publicstaticvoiddoSomething(){synchronized(Foo.foo){//code}}}关于这个:publicclassFoo{publicstaticvoiddoSomething(){synchronized(Foo.class){//code}}}或者这个:publicclassFoo{publicsynchronizedstaticvoiddoSomething(){//code}}?对我来说,这些看起来基本相

java - 当我使用命令 `mvn test -Xlint:unchecked` 时。出现一些错误

[ERROR]Nopluginfoundforprefix'lint'inthecurrentprojectandintheplugingroups[org.apache.maven.plugins,org.codehaus.mojo]availablefromtherepositories[local(C:\Users\Administrator\.m2\repository),alimaven(http://maven.aliyun.com/nexus/content/groups/public/)]->[Help1]org.apache.maven.plugin.prefix.N

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 - 如何初始化循环依赖(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清除。(我说得对吗?)所有可终结的对象将被放入同一个队列中,以便稍后被一个一个地终