标签: instance-initializers

理解此警告:可序列化类不声明静态最终serialVersionUID

我有一些静态初始化代码:

someMethodThatTakesAHashMap(new HashMap<K, V>() {
{
  put("a","value-a"); 
  put("c","value-c");}
});
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我收到了Eclipse的警告:serializable类没有声明静态的最终serialVersionUID.

这是抱怨匿名课吗?我能做些什么,或者我应该压制它.

java generics instance-initializers

21
推荐指数
2
解决办法
2万
查看次数

为什么我的实例初始化程序块在声明之前引用了一个字段?

我的理解是你不能在声明变量之前引用变量,并且在构造函数创建对象之前,所有代码(包括实例初始值设定项)都在类的主体内但在任何方法之外的顺序执行(例外是static变量和初始化程序块,它们在程序开始时按顺序运行,以初始化整个类).那么,为什么以下代码编译(并运行!):

public class WhyIsThisOk {
    { a = 5; } // why is this ok???
    int a = 10;

    public WhyIsThisOk() {
    }

    public static void main(String[] args) {
        WhyIsThisOk why = new WhyIsThisOk();
        System.out.println(why.a); // 10
    }
}
Run Code Online (Sandbox Code Playgroud)

java instance-initializers

7
推荐指数
1
解决办法
109
查看次数

标签 统计

instance-initializers ×2

java ×2

generics ×1