690得票25回答
Java中的“final class”有什么作用?

我正在阅读一本有关Java的书,书中提到你可以将整个类声明为final。我想不出在哪种情况下会使用它。 作为一个新手编程者,我想知道程序员们是否真正会在他们的程序中使用这个功能。如果他们使用,那么他们是何时使用它的,这样我就能更好地理解并知道该何时使用它。 如果Java是面向对象的,并且您...

567得票15回答
使用Java反射修改私有静态常量字段

我有一个类,其中有一个private static final字段,不幸的是,我需要在运行时更改它。 使用反射时,我会收到如下错误:java.lang.IllegalAccessException: Can not set static final boolean field 是否有任何方...

561得票20回答
Java中的"final"关键字是如何工作的?(我仍然可以修改一个对象。)

在Java中,我们使用final关键字来指定变量的值不会被更改。但是我发现你可以在类的构造函数/方法中更改变量的值。如果变量是static,那么这将是一个编译错误。 以下是代码: import java.util.ArrayList; import java.util.List; cla...

484得票17回答
455得票12回答
为什么我在Java中的方法参数上要使用关键字"final"?

在方法参数上使用final关键字的真正好处让我感到困惑。 如果我们排除了使用匿名类、可读性和意图声明,那么它对我来说几乎没有什么价值。 强制某些数据保持不变并不像它看起来那样强大。 如果参数是一个原始类型,那么它将没有任何影响,因为参数作为值传递给方法,并且更改它将不会在范围外产生任何...

412得票14回答
在Java中使用final关键字是否能提高性能?

在Java中,我们可以看到许多地方都可以使用final关键字,但实际上它的使用并不常见。 比如:String str = "abc"; System.out.println(str); 在上述情况下,`str` 可以是 `final` 的,但通常会省略。当一个方法永远不会被覆盖时,我们可以使...

388得票15回答
final和effectively final的区别

我正在使用Java 8中的lambda表达式,并遇到警告本地变量从lambda表达式引用必须是final或有效 final。我知道当我在匿名类中使用变量时,它们必须在外部类中是final的,但仍然存在问题-什么是final和有效final之间的区别?

334得票22回答
私有的最终静态属性 vs 私有的最终属性

在Java中,以下两种方式有什么区别:private final static int NUMBER = 10; 和private final int NUMBER = 10; 两者都是private和final,区别在于static属性。哪一个更好?为什么?

281得票11回答
“static final Logger”应该声明为大写字母吗?

在Java中,静态final变量是常量,惯例是它们应该使用大写字母。然而,我发现大多数人将记录器声明为小写字母,这会导致PMD违规。 e.g: private static final Logger logger = Logger.getLogger(MyClass.class); 只...

251得票20回答
在不同方法中定义的内部类无法引用非最终变量。

编辑: 我需要在计时器运行多次的过程中更改多个变量的值。我需要在每次通过计时器迭代时更新这些值。我不能将这些值设置为final,因为那样会防止我更新它们,然而我正在遇到下面描述的错误: 我之前写的是: 我遇到了“无法引用在不同方法中定义的内部类中的非最终变量”的错误。 这发生在名为price...