gpt4 book ai didi

java - 具有最终未初始化字段的抽象类

转载 作者:IT老高 更新时间:2023-10-28 20:35:24 27 4
gpt4 key购买 nike

我想知道下面的代码是否有意义,因为编译器警告说“空白的最终字段对象可能尚未初始化”。有更好的方法吗?

public abstract Test {
protected final ArrayList<Object> objects;
}

public TestSubA extends Test {

public TestSubA() {
objects = new ArrayList<Objects>(20);
// Other stuff
}
}

public TestSubB extends Test {

public TestSubB() {
objects = new ArrayList<Objects>(100);
// Other stuff
}
}

最佳答案

我会将字段设为 final 并强制构造函数向上传递值:

public abstract class Test {
private final ArrayList<Object> objects;

protected ArrayList<Object> getObjects() {
return objects;
}

protected Test(ArrayList<Object> objects) {
this.objects = objects;
}
}

public class TestSubA extends Test {

public TestSubA() {
super(new ArrayList<Object>(20));
// Other stuff
}
}

public class TestSubB extends Test {

public TestSubB() {
super(new ArrayList<Object>(100));
// Other stuff
}
}

关于java - 具有最终未初始化字段的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com