草庐IT

finalizer

全部标签

java - 我们可以在 finally block 中使用 "return"

这个问题在这里已经有了答案:ReturningfromafinallyblockinJava(6个回答)Multiplereturns:Whichonesetsthefinalreturnvalue?(7个回答)关闭9年前。我们可以在finallyblock中使用return语句吗?这会导致任何问题吗? 最佳答案 从finallyblock内部返回会导致exceptions丢失。finallyblock中的return语句将导致try或catchblock中可能抛出的任何异常被丢弃。根据JavaLanguageSpecificati

java - 为什么只有在 short 是 final 时才将 short 分配给 byte ?

有人可以解释为什么以下编译:finalshorts1=1;finalcharc1=1;byteb1=s1;byteb2=c1;但以下没有(编译器错误信息是Typemismatch:cannotconvertfromshorttobyte):shorts1=1;charc1=1;byteb1=s1;byteb2=c1; 最佳答案 答案在JLS-5.2.AssignmentConversion:..iftheexpressionisaconstantexpression(§15.28)oftypebyte,short,char,orin

java - java final 是否有助于编译器创建更高效​​的字节码?

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:DoesuseoffinalkeywordinJavaimprovetheperformance?final修饰符有differentconsequences在java中取决于你应用它。我想知道的是,如果另外它可能会帮助编译器创建更高效​​的字节码。我想这个问题深入到JVM是如何工作的,并且可能是JVM特定的。那么,根据您的专业知识,以下任何一项对编译器有帮助吗,还是仅出于正常的java原因使用它们?期末课final方法最终字段final方法参数谢谢!编辑:感谢您的所有回答!请注意,正如@Zohaib建议的那

java - 在 finally block 中,我可以判断是否抛出了异常

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:IsitpossibletodetectifanexceptionoccurredbeforeIenteredafinallyblock?我有一个工作流方法,它会在发生错误时抛出异常。我想将报告指标添加到我的工作流程中。在下面的finallyblock中,有什么方法可以判断try/catchblock中的方法之一是否引发了异常?我可以添加自己的catch/throw代码,但更喜欢更简洁的解决方案,因为这是我在整个项目中重复使用的模式。@OverridepublicvoidworkflowExecutor()t

java - 我们应该什么时候使用 "public static final String"?

我见过很多人写的代码publicstaticfinalStringmystring=...然后只使用一个值。为什么他们必须这样做?为什么他们必须在使用之前将值初始化为final?更新好的,谢谢大家的回答,我理解这些键的含义(publicstaticfinal)。我不明白的是为什么人们会使用它,即使常量只会在一个地方并且只在同一个类中使用。为什么要宣布它?为什么我们不只使用变量? 最佳答案 final表示变量的值不会改变——也就是说,一个constant,它的值在声明之后就不能被修改。当你想创建一个String时使用publicfin

Java io丑陋的try-finally block

是否有一种不那么丑陋的方式来处理close()异常以关闭两个流然后:InputStreamin=newFileInputStream(inputFileName);OutputStreamout=newFileOutputStream(outputFileName);try{copy(in,out);}finally{try{in.close();}catch(Exceptione){try{//eventifin.closefails,needtoclosetheoutout.close();}catch(Exceptione2){}throwe;//andthrowthe'in'e

java - hibernate-commons-annotations-4.0.1.Final.jar;无效的 LOC header (错误的签名)?

我是Maven新手..我正在尝试为springMVC+Hiberante创建maven项目,但我遇到了很多错误..任何人都可以解决我的问题,请检查我的pom.xml以获取以下信息4.0.0Spring3HibernateMavenSpring3HibernateMavenwar0.0.1-SNAPSHOTmaven-compiler-plugin2.3.21.51.5maven-war-plugin2.0-->javax.servletservlet-api2.5org.springframeworkspring-beans${org.springframework.version}o

java - 多次返回 : Which one sets the final return value?

鉴于此代码:Stringtest(){try{return"1";}finally{return"2";}}语言规范是否定义了调用test()的返回值?换句话说:在每个JVM中它总是相同的吗?在SunJVM中,返回值为2,但我想确定,这与VM无关。 最佳答案 是的,languagespec定义“2”是结果。如果VM的做法有所不同,则说明它不符合规范。大多数编译器都会提示它。例如Eclipse会声称返回block永远不会被执行,但这是错误的。编写这样的代码是非常糟糕的做法,永远不要这样做:)

java - 'public static final' 还是带有 setter/getter 的 'private static final'?

在Java中,变量应该保持私有(private)以实现更好的封装,但是静态常量呢?这个:publicstaticfinalintFOO=5;结果与此等价:privatestaticfinalintFOO=5;...publicstaticgetFoo(){returnFOO;}但哪种做法更好? 最佳答案 不直接在代码中使用常量的原因之一。假设FOO稍后可能会更改(但仍保持不变),例如publicstaticfinalintFOO=10;。只要没有人愚蠢到直接硬编码值,就不应该破坏任何东西吗?没有。Java编译器会将上面的Foo等常量

java - 在 Java 中修改 final 字段

让我们从一个简单的测试用例开始:importjava.lang.reflect.Field;publicclassTest{privatefinalintprimitiveInt=42;privatefinalIntegerwrappedInt=42;privatefinalStringstringValue="42";publicintgetPrimitiveInt(){returnthis.primitiveInt;}publicintgetWrappedInt(){returnthis.wrappedInt;}publicStringgetStringValue(){return