草庐IT

non-final

全部标签

java - case 表达式必须是 static final int 的常量表达式?

我有一个finalclassRing定义为:finalclassRing{publicstaticfinalintOUT=3;publicstaticfinalintMID=2;publicstaticfinalintIN=1;}我还有一个publicclassMorrisBoard,代码如下:publicclassMorrisBoard{publicstaticfinalRingRING=newRing();privatebooleancheckMillBy(intring,intx,inty){switch(ring){caseMorrisBoard.RING.OUT://...c

Java在try-catch-finally机制中的返回值

我刚遇到下面这段代码:publicclassTestFinally{publicstaticvoidmain(String[]args){intreturnValue=function();System.out.println("Returnvalue:"+returnValue);}publicstaticintfunction(){try{return1;}catch(Exceptione){return2;}finally{return3;}}}毫无疑问,运行此代码将产生“返回值:3”的输出。但是,我很好奇:JVM的内部机制。有谁知道虚拟机是否真的通过覆盖第一个“return1”

java - 在try\finally block中有没有finally不执行的情况?

我正在为面向对象编程的测试学习,我想知道考虑以下代码是否存在任何情况:try{dosomething}catch(someExceptione){}finally{dosomething}finallyblock不会执行? 最佳答案 是的。如果您使JavaVM崩溃或通过native代码搞砸,导致程序终止,或在tryblock内无限循环/等待。只有这三种情况可以避免执行finallyblock。 关于java-在try\finallyblock中有没有finally不执行的情况?,我们在S

java - 枚举中的静态 final方法

所以我环顾了谷歌和SO,我找不到示例或解释:Whatisthepurposeofstaticfinalmethodsinenum?我的理解:声明static的方法可以像函数/过程语言一样访问。final意味着您不能覆盖它。无法更改引用。正如assylias在评论中指出的那样static也不能被覆盖。enum不能被子类化,已解释here.那么staticfinal方法在enum中的意义是什么,如果它永远不会被覆盖,因为那里不会是一个子类? 最佳答案 通过使静态方法成为final方法,youpreventitfrombeinghidde

c# - c# sealed 和 Java 的 final 关键字之间有什么功能上的区别吗?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatistheequivalentofJava’sfinalinC#?在Java中,final不仅仅适用于一个类。所以,我想知道:这两个关键字在功能上有什么区别吗?谢谢,很抱歉问了一个比较菜鸟的问题。Google快速搜索无法满足我的需求。

java - 相当于在 Java 中扩展一个 final 类

我知道在Java中我们不能扩展最终类。但是有没有其他方法可以让我获得扩展final类的效果?因为我有一个包含我正在寻找的需求的期末类(class),所以如果我能以某种方式重用它,那将对我有很大帮助。 最佳答案 为最终类创建一个包装器?像这样:classMyClass{privateFinalClassfinalClass;publicMyClass{finalClass=newFinalClass():}publicvoiddelegatingMethod(){finalClass.delegatingMethod();}}像MyC

Java 错误 - 参数的非法修饰符 - 仅允许 final

下面的代码有什么问题publicstaticvoidmain(String[]args){publicstaticfinalStringName="RobinWilson";}字符串引用名称显示编译错误-Java错误-参数名称的非法修饰符-仅最终允许我可以接受以下给出的建议,但我想了解为什么不允许这样做,尽管它们都是静态的? 最佳答案 您已修改要问的问题:Iwanttounderstandwhyitisnotpermitted,thoughbotharestatic?方法中的变量只存在于栈帧中。每次调用方法时,JVM都会创建一个新的

java - 无法在 Java 中为 "final"变量赋值

privatevoidpushButtonActionPerformed(java.awt.event.ActionEventevt){finalintc=0;finalJDialogd=newJDialog();JLabell=newJLabel("EntertheElement:");JButtonbut1=newJButton("OK");JButtonbut2=newJButton("Cancel");finalJTextFieldf=newJTextField(10);JPanelpanel=newJPanel();but1.addActionListener(newActi

java - 为什么它说 "Cannot refer to a non-final variable i inside an inner class defined in a different method"?

这个问题在这里已经有了答案:Cannotrefertoanon-finalvariableinsideaninnerclassdefinedinadifferentmethod(20个答案)关闭7年前。我有按钮点击监听器,在onCreate()方法中我有一个局部变量,如onCreate(){super.onCreate();inti=10;Buttonbutton=(Button)findViewById(R.id.button);button.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick

C# sealed 与 Java final

有人能告诉我以下使用sealed不能编译的原因吗?然而,如果我将sealed替换为final并将其编译为Java,它就可以工作。privatesealedintcompInt=100;publicboolcheck(intsomeInt){if(someInt>compInt){returntrue;}returnfalse;} 最佳答案 那是因为final在Java中意味着很多不同的东西,这取决于你在哪里使用它,而sealed在C#中仅适用于类和继承虚拟成员(方法、属性、事件)。在Java中final可以应用于:classes,表