final相关内容
可能的重复: Java 静态类初始化 为什么在初始化块中更新的是字符串变量而不是整数(即使块是先写入的) class NewClass{静止的{System.out.println(NewClass.string+" "+NewClass.integer);}最终静态字符串字符串=“静态";最终静态整数整数=1;public static void main(String [] args
..
在java中,假设我有以下内容 ==fileA.java==A级{公共静态最终 int SIZE = 100;} 然后在另一个文件中我使用这个值 ==fileB.java==进口A;b类{Object[] temp = new Object[A.SIZE];} 当它被编译时 SIZE 被替换为值 100,所以如果我要替换 FileA.jar 而不是 FileB.jar,对象数组会得到新值还
..
此代码: 接口配置{INT MAX_CONN = 20;} 按照我的预期编译和工作.看起来是这样的: 接口配置{公共静态最终 int MAX_CONN = 20;} 对于 Java 接口中的常量来说,“public static final"是多余的吗?对于 Java 1.1、1.2、1.3、1.4、...、1.8,这是真的还是在 Java 版本中发生了变化? 解决方案 Inter
..
我只是想了解为什么接口中定义的所有字段都是隐式static 和final.保持字段 static 的想法对我来说很有意义,因为您不能拥有接口的对象,但为什么它们是 final(隐式)? 有人知道为什么 Java 设计者要在接口 static 和 final 中创建字段吗? 解决方案 接口旨在指定交互契约,而不是实现细节.开发人员应该能够仅通过查看接口来使用实现,而不必查看实现它的类的
..
我有一段从文件加载属性的代码: class 配置 {val 属性:属性 = {val p = 新属性()p.load(Thread.currentThread().getContextClassLoader.getResourceAsStream("props"))p}val forumId = properties.get("forum_id")} 这似乎工作正常. 我尝试将 prop
..
公共类A{private static final int x;公共 A(){x = 5;}} final 表示变量只能赋值一次(在构造函数中). static 表示它是一个类实例. 我不明白为什么禁止这样做.这些关键字在什么地方相互干扰? 解决方案 每次创建类的实例时都会调用一个构造函数.因此,上面的代码意味着每次创建实例时都会重新初始化 x 的值.但是因为变量被声明为fina
..
考虑以下 Java 类声明: 公共类测试{私人最终 int defaultValue = 10;私有整数变量;公共测试(){这(默认值);//
..
在 Java 中,当跨多个线程(以及一般情况下)使用一个对象时,最好将字段设为 final.例如, 公共类 ShareMe {私有最终 MyObject 对象;公共共享我(我的对象对象){this.obj = obj;}} 在这种情况下,obj 的可见性将在多个线程中保持一致(假设 obj 也具有所有 final 字段),因为它是使用 final 关键字安全地构造的. 在 scala 中
..
我创建了一个测试分支.它有很多微小的提交来构建一个功能.最后,我想把最后完成的更改,放到 master 分支. 主分支,不应包含测试分支的历史记录. 测试分支最终会被移除. 实现这一目标的最佳方法是什么? 生成补丁并将其应用到 master 上是最好的方法吗? 如果是这样,我如何生成/应用补丁? 解决方案 “ 中描述了各种方法理解 Git 工作流程": 短期工作
..
class WithPrivateFinalField {private final String s = "我完全安全";公共字符串 toString() {返回 "s = " + s;}}WithPrivateFinalField pf = new WithPrivateFinalField();System.out.println(pf);Field f = pf.getClass().ge
..
假设我有一堂课: 公共类 R {公共静态最终 int _1st = 0x334455;} 如何通过反射获取“_1st"的值? 解决方案 先获取类的字段属性,然后才能获取值.如果您知道类型,您可以使用带有 null 的 get 方法之一(仅对于静态字段,实际上对于静态字段,传递给 get 方法的参数将被完全忽略).否则,您可以使用 getType 并编写一个适当的开关,如下所示: Fi
..
这个问题是在尝试编写测试用例时出现的.Foo 是框架库中的一个类,我无权访问它. 公共类Foo{公共最终对象 getX(){...}} 我的应用程序将 public class Bar extends Foo{公共整数进程(){对象值 = getX();...}} 单元测试用例无法初始化,因为由于其他依赖关系,我无法创建 Foo 对象.BarTest 抛出一个空指针,因为值为空. pub
..
将 private 和 final 添加到同一个方法是否多余? class SomeClass {//- 剪断--私有最终无效 doStuff(){//这里是私人工作}} 如果它是private,那么任何人都无法覆盖它,对吧? 如果没有效果,为什么可以添加final关键字?(或者我错过了什么?) 解决方案 基本上是允许的,因为他们觉得放置一个特殊情况来禁止 private 修饰符
..
我明白在这段代码中: class Foo {公共静态无效方法(){System.out.println("in Foo");}}类 Bar 扩展 Foo {公共静态无效方法(){System.out.println("in Bar");}} .. Bar 中的静态方法“隐藏"了 Foo 中声明的静态方法,而不是在多态意义上覆盖它. class 测试 {公共静态无效主(字符串 [] args)
..
引用自 http://sites.google.com/site/gson/gson-design-document: 为什么 Gson 中的大多数类都标记为最后? 虽然 Gson 提供了一个公平的通过提供可扩展的架构可插拔序列化程序和反序列化器,Gson 类不是专门设计为可扩展.提供非最终类将允许用户合法地扩展 Gson 类,以及然后期望该行为起作用所有后续修订.我们选择了通过标记来
..
在 Java 中,静态最终变量是常量,并且约定它们应该是大写的.但是,我已经看到大多数人以小写形式声明记录器,这在 PMD 中被视为违规. 例如: private static final Logger logger = Logger.getLogger(MyClass.class); 只需搜索 google 或 SO 表示“静态最终记录器",你会亲眼看到这个. 我们应该使用 LO
..
维基百科有以下关于 C++11 final 修饰符的例子: struct Base2 {virtual void f() final;};结构派生2:Base2 {无效 f();//格式错误,因为虚函数 Base2::f 已被标记为 final}; 我不明白引入虚函数并立即将其标记为最终函数的意义.这只是一个不好的例子,还是有更多的例子? 解决方案 通常 final 不会用于虚函数的基
..
它在这篇文章中说:> 将一个类设为 final 是因为它是不可变的,这是这样做的一个很好的理由. 我对此有点困惑...我知道从线程安全性和简单性的 POV 来看,不变性是一件好事,但这些问题似乎与可扩展性有些正交.那么,为什么不变性是使类成为 final 的一个很好的理由? 解决方案 'Effective Java'一书中对此的解释 考虑 Java 中的 BigDecimal
..
在 Java 类中,可以将方法定义为 final,以标记此方法不能被覆盖: 公共类Thingy {公共事物(){ ... }公共 int operationA() {...}/** 这个方法执行 @return That 并且是最终的.*/public final int getThat() { ...}} 这很清楚,它可能对防止意外覆盖或性能有所帮助 -mdash;但这不是我的问题.
..
Dart 中const 和final 关键字有什么区别? 解决方案 在 dart 的网站上有一个帖子,它解释得很好. 决赛: “最终"意味着单赋值:最终变量或字段必须有一个初始化器.一旦赋值,最终变量的值就不能改变.final 修改变量. 常量: “常量"在 Dart 中具有更复杂和微妙的含义.const 修改值.您可以在创建集合时使用它,例如 const [1,
..