Final-Metaverse-Fantasy
全部标签 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
这个问题在这里已经有了答案:Cannotrefertoanon-finalvariableinsideaninnerclassdefinedinadifferentmethod(20个答案)关闭7年前。我有按钮点击监听器,在onCreate()方法中我有一个局部变量,如onCreate(){super.onCreate();inti=10;Buttonbutton=(Button)findViewById(R.id.button);button.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick
有人能告诉我以下使用sealed不能编译的原因吗?然而,如果我将sealed替换为final并将其编译为Java,它就可以工作。privatesealedintcompInt=100;publicboolcheck(intsomeInt){if(someInt>compInt){returntrue;}returnfalse;} 最佳答案 那是因为final在Java中意味着很多不同的东西,这取决于你在哪里使用它,而sealed在C#中仅适用于类和继承虚拟成员(方法、属性、事件)。在Java中final可以应用于:classes,表
我在后续代码中遇到了一个我之前不知道的行为。考虑第一个st案例:publicstaticvoidmain(String[]args){finalStringstr=null;System.out.println(str.length());//CompilerWarning:NullPointerAccess}正如预期的那样,编译器在str为null时向我显示以下警告-Nullpointeraccess:Thevariablestrcanonlybenullat这个位置。现在,当我移动该变量时,staticfinal字段初始化为null:classDemo{staticfinalStr
摘自《Java并发实践》一书:Topublishanobjectsafely,boththereferencetotheobjectandtheobject'sstatemustbemadevisibletootherthreadsatthesametime.Aproperlyconstructedobjectcanbesafelypublishedby:InitializinganobjectreferencefromastaticinitializerStoringareferencetoitintoavolatilefieldorAtomicReferenceStoringare
我有一些代码:finalintvar1;if(isSomethingTrue){var1=123;}else{throwErrorMethod();}intvar2=var1;throwErrorMethod定义如下:privatevoidthrowErrorMethod()throwsException{thrownewException();}对于var2=var1语句,我得到一个blankfinalfieldmaynothavebeeninitialized编译错误。如果我内联该方法,编译就可以了!编译器是否在调用的方法上看到throwsException?为什么出现包含单词ma
如果实例变量设置为final,那么它的值就不能像publicclassFinal{privatefinalintb;Final(intb){this.b=b;}intgetFinal(){returnb=8;//COMPILETIMEERROR}}在代码的某处,我看到实例类变量HashMap声明为finalprivatefinalMapcacheMap=newHashMap();我不明白为什么要这样声明?通常在这种情况下它被声明。这是否意味着一旦我放入HashMap就无法更改它的值?编辑:如果将声明为final的cacheMap作为参数传递给另一个类,那么如果我更改其引用,则不会为fi
Java中的final类都是不可变的吗?String和Integer都是最终类,我相信它们都是不可变的。 最佳答案 不,final意味着类不能被扩展。它没有提到可变性。例如:finalclassMutInt{publicintmodifyMe;} 关于java-所有final类都是不可变的吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1630321/
我有一个变量在初始化后不应更改其值,因此我想将其定义为最终变量。问题是变量必须在tryblock中初始化,所以我遇到了以下麻烦:我有以下代码:Connectionconn=null;try{conn=getConn(prefix);[...dosomestuffwithconn...]}catch(Exceptione){thrownewDbHelperException("erroropeningconnection",e);}finally{closeConnection(conn);}如果我将variabale声明为final,但没有将其初始化为null,我会在finallybl
将int和short类型的常量自动装箱到Byte时没有错误,但long类型do有错误。为什么?finalinti=3;Byteb=i;//noerrorfinalshorts=3;Byteb=s;//noerrorfinallongl=3;Byteb=l;//error 最佳答案 来自JLSSec5.2,"Assignmentcontexts"(强调我的):Inaddition,iftheexpressionisaconstantexpression(§15.28)oftypebyte,short,char,orint:Anarro