问题标签 [final]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java:在超类中初始化一个公共静态字段,该字段在每个子类实例中都需要不同的值
晚上好,
我正在开发一组 Java 类,以便一个容器类Box
包含一个List
包含的类Widget
。AWidget
需要能够指定与其他的关系Widgets
。我想一个很好的方法是做这样的事情:
所以 can 的子类Widget
:
现在,BlueWidget
可以做getBox().addWidgetRelationship(RelationshipTypes.SomeType, RedWidget.WIDGETID
,并且Box
可以遍历它的列表,将第二个参数与iter.next().getWidgetID()
.
现在,到目前为止,这一切都很好。我想要做的是不必public static final WidgetID WIDGETID
在所有子类中声明并在父Widget
类中实现它。问题是,如果我将那行代码移入Widget
(连同 的实现getWidgetID()
),那么 的子类的每个实例Widget
似乎都static final WidgetID
对它们的Subclassname.WIDGETID
. 但是,使其成为非静态意味着我什至不能再调用Subclassname.WIDGETID
.
那么:我如何WidgetID
在父Widget
类中创建一个静态,同时确保它的每个实例Widget
和子类都不同Widget
?还是我在这里使用了错误的工具来完成这项工作?
谢谢!
[编辑] 我不希望库的用户调用super()
他们所有的子Widget
构造函数。
java - 通过反射获取Java中类的公共静态最终字段/属性的值
假设我有一堂课:
如何通过反射获得“_1st”的值?
php - 将任何类或任何方法声明为“最终”的示例场景是什么?
将任何类或任何方法声明为“最终”的示例场景是什么?我们什么时候需要这样做?
请给我一些例子来理解“final”的实际使用......
请详细说明你的答案....
请指导我,因为我是 OOP 的初学者
java - 在 Java 中实现可克隆
在哪些情况下我应该使用这种方式:
在哪些情况下我应该使用这种方式:
如果x
是最终的并且我想使用第一种方式,我该怎么办?
关于第一种方式,我的理解是这样的:我们克隆超类并向上转换它,导致一些成员未初始化。在此之后初始化这些成员。我的理解正确吗?
谢谢你。
java - 为什么Java中没有Constant特性?
我试图找出Java中常量背后的原因我了解到Java允许我们使用final
关键字来声明常量。
我的问题是为什么 Java 没有引入一个 Constant ( const
) 特性。由于很多人说它来自 C++,所以在 C++ 中我们有const
关键字。
请分享你的想法。
java - 从匿名 Java 类中改变原始变量的合理方法是什么?
我想编写以下代码:
显然这是不允许的,因为found
需要final
。found
出于线程安全的原因,我无法创建成员字段。什么是最好的选择?一种解决方法是定义
但这最终会在正确格式化时占用大量空间,如果可能的话,我宁愿不重新发明轮子。我可以将 aList<Boolean>
与单个元素一起使用(改变该元素,或者清空列表),甚至可以使用Boolean[1]
. 但一切似乎都闻起来很有趣,因为没有一个选项按预期使用。
这样做的合理方法是什么?
java - 在 Java 中初始化最终变量的问题
我一直在 Java 中遇到一个问题的细微变化,它开始影响到我,我真的想不出一个合适的方法来解决它。
我有一个最终但动态的对象属性。也就是说,我希望该值在分配后保持不变,但每个运行时该值可能不同。所以我在类的开头声明了类级别的变量——比如说private final FILE_NAME;
。然后,在构造函数中,我给它赋值——比如说FILE_NAME = buildFileName();
当我在buildFileName()
引发异常的方法中有代码时,问题就开始了。所以我在构造函数中尝试这样的事情:
现在我有一个错误 - “空白的最终字段 FILE_NAME 可能尚未初始化。” 这就是我开始对 Java 的严格编译器有点恼火的地方。我知道这不会成为问题,因为如果它被捕获,程序将退出......但编译器不知道,因此不允许此代码。如果我尝试向 catch 添加一个虚拟分配,我会得到 - “最终字段 FILE_NAME 可能已经被分配。” 我显然不能在 try-catch 之前分配默认值,因为我只能分配一次。
有任何想法吗...?
class - Scala 中是否有向 Array 对象添加方法的模式?
Scala 中是否有可以向 Array 对象添加方法的模式?
我正在考虑将 Int 隐式转换为 RichInt。但这无法做到,因为 Array 是最终类。
java - 在 ArrayBlockingQueue 中,为什么要将 final 成员字段复制到本地 final 变量中?
其中ArrayBlockingQueue
,所有需要锁的方法final
在调用之前将其复制到一个局部变量中lock()
。
当字段为时,是否有任何理由复制this.lock
到局部变量?lock
this.lock
final
此外,它还在E[]
操作之前使用了本地副本:
是否有任何理由将最终字段复制到本地最终变量?
java - What is the effect of final variable declaration in methods?
Classic example of a simple server:
Why should the Socket
be declared as final
? Is it because the new Thread
that handles the request could refer back to the socket
variable in the method and cause some sort of ConcurrentModificationException
?