草庐IT

FINAL_DEFINE

全部标签

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,表

java - 行为差异 : 'null' initialized final static member, 和 'null' 初始化最终局部变量

我在后续代码中遇到了一个我之前不知道的行为。考虑第一个st案例:publicstaticvoidmain(String[]args){finalStringstr=null;System.out.println(str.length());//CompilerWarning:NullPointerAccess}正如预期的那样,编译器在str为null时向我显示以下警告-Nullpointeraccess:Thevariablestrcanonlybenullat这个位置。现在,当我移动该变量时,staticfinal字段初始化为null:classDemo{staticfinalStr

java - final vs volatile guaranntee w.rt 安全发布对象

摘自《Java并发实践》一书:Topublishanobjectsafely,boththereferencetotheobjectandtheobject'sstatemustbemadevisibletootherthreadsatthesametime.Aproperlyconstructedobjectcanbesafelypublishedby:InitializinganobjectreferencefromastaticinitializerStoringareferencetoitintoavolatilefieldorAtomicReferenceStoringare

Java "blank final field may not have been initialized"方法异常抛出异常

我有一些代码:finalintvar1;if(isSomethingTrue){var1=123;}else{throwErrorMethod();}intvar2=var1;throwErrorMethod定义如下:privatevoidthrowErrorMethod()throwsException{thrownewException();}对于var2=var1语句,我得到一个blankfinalfieldmaynothavebeeninitialized编译错误。如果我内联该方法,编译就可以了!编译器是否在调用的方法上看到throwsException?为什么出现包含单词ma

java - 为什么在 Java 中使用 final 实例类变量?

如果实例变量设置为final,那么它的值就不能像publicclassFinal{privatefinalintb;Final(intb){this.b=b;}intgetFinal(){returnb=8;//COMPILETIMEERROR}}在代码的某处,我看到实例类变量HashMap声明为finalprivatefinalMapcacheMap=newHashMap();我不明白为什么要这样声明?通常在这种情况下它被声明。这是否意味着一旦我放入HashMap就无法更改它的值?编辑:如果将声明为final的cacheMap作为参数传递给另一个类,那么如果我更改其引用,则不会为fi