Final-Metaverse-Fantasy
全部标签 当我们可以通过实现Runnable并将其传递给Thread构造函数来实现相同的功能时,允许用户通过扩展Thread类来创建线程的本质是什么。 最佳答案 achievethesamefunctionalitybyimplementingRunnableandpassittotheThreadconstructor扩展Thread的使用不限于Runnable。例如你可以changethebehaviorofsomemethods或添加您自己的线程本地信息(始终可以通过Thread.currentThread()访问)。
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:IsthereanyperformancereasontodeclaremethodparametersfinalinJava?Whywouldonemarklocalvariablesandmethodparametersas“final”inJava?我正在使用PMD查看代码违规情况。在webService方法中,我有下面的代码publicServiceRequestgetData(){Statusstatus=newStatus();//code}PMD给我的建议是,这个局部变量状态可以声明为final
这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Javafinalmodifier这只是一个关于偏好的小问题。final修饰符的正确用法是什么?我注意到,从一个源到另一个源,我比其他人更倾向于使用它。我将它用于方法的参数、方法中的变量以及我所能做的一切。这是必要的还是我做得太过分了?引用:privatefinalintx;privatefinalinty;privatefinalintid;privatefinalintwidth;privatefinalintheight;publicWidget(finalintid,finalintx,finalint
我将如何显示该字段privatestaticfinalintDAMAGE=3;在UML图中?它应该显示为:-DAMAGE:3:int吗? 最佳答案 你这样显示。Private用减号表示。static属性用下划线表示。初始值显示为=.自从我了解到final表示一个常量,您将应用isConst显示为{readOnly}的属性.另见p.UML规范的111:::=[][‘/’][‘:’][‘[‘‘]’][‘=’][‘{‘[‘,’]*’}’][detailsomitted]在此上下文中不再相关,但无论如何保留它:回复。@granier关于标记
我确实知道,当您在java中制作方法final时,它不能被覆盖。当一个方法是私有(private)时,它只能被该方法所在的给定类的方法和成员访问。那么,这是否意味着由于无法访问该方法,因此尝试检查它是否可以被覆盖是没有用的,因为我编写了以下声明并收到以下警告:privatemethodaddCodeisdeclaredfinalprivatefinalvoidaddCode(Stringcode){//codeshere...} 最佳答案 好吧,private意味着除了你之外没有人会访问该方法,final意味着没有人可以重载该方法。
我尝试声明一个类,如下所示classOuter{privatefinalclassInner{publicstaticfinalStrings1=newString("123");publicstaticfinalbyte[]bytes=newbyte[]{0x00,0x01};publicstaticfinalStrings2="123";publicstaticfinalbytebyte1=0x02;}}在上面的代码中,s1和bytes无法编译,但s2和byte1可以编译。如果我将整个常量声明放在外部类中,它就可以正常工作。我错过了什么。有帮助吗? 最佳
我有很多抽象类的子类,每个子类都声明了一个同名的publicstaticfinal字段。我在考虑在抽象父类(superclass)中有这个字段而不初始化它,并希望每个子类都被强制初始化它。我之所以想到这一点,是因为我的抽象类的所有子类都声明了一个名为UNIQUE_ID的公共(public)静态最终字符串字段,并且每个子类都必须声明一个具有完全相同名称的字段。我希望我的问题足够清楚,如果不是请告诉我。可以做一些或多或少等同于此的事情吗?编辑:添加代码:我的抽象类如下所示:publicabstractclassExperimentPanelModelextendsPanelizable{p
我对匿名类和最终字段的解释仍然不满意。有很多问题试图解释明显的问题,但我还没有找到所有问题的答案:-)假设如下代码:publicvoidmethod(finalinti,intj){finalintz=6;finalintx=j;intk=5;newRunnable(){publicvoidrun(){System.out.print(i);System.out.print(x);System.out.print(z);System.out.print(k);}};}由于“未最终的”k属性,无法编译此代码。我知道编译器可以在编译期间用声明的值替换z属性。当我搜索解决方案时,i和x究竟如
有没有办法强制Java中的类具有publicstaticfinal字段(通过接口(interface)或抽象类)?或者至少只是一个公共(public)领域?我需要以某种方式确保一组类有publicstaticfinalStringTYPE="...";在其中。 最佳答案 不,你不能。你只能强制他们有一个非静态的getter方法,它会为每个子类返回适当的值:publicabstractStringgetType();如果你需要将某物的每个子类映射到一个值,而不需要实例化它,你可以创建一个publicstaticMap,String>t
我目前正在阅读JoshuaBloch的《EffectiveJava》,第17条是“为继承设计和记录,否则禁止继承”。作者建议默认禁止继承。在默认情况下将类声明为final是否安全,如果需要扩展类,在以后的版本中删除final关键字是否安全?它会破坏对使用先前版本编译的代码的向后兼容性吗?如果是这样,似乎更安全的做法是将所有类设为最终类,并且仅在有良好支持需求的情况下在未来的版本中将其删除。 最佳答案 它既不破坏二进制也不破坏源兼容性。这就是将类(class)设置为final是个好主意的原因之一;改变主意总是可以的。TheJavaLa