Smu*_*Bug 0 java generics constructor arraylist
我想使用单独的构造函数独立初始化几个不同的 ArrayList。除了默认值之外,我可以仅使用辅助构造函数轻松地实现我需要的类,但为了了解为什么这不起作用,我很欣赏一些见解。
public class MultiConstruct
{
ArrayList<Integer> first;
ArrayList<Float> second;
public MultiConstruct(){};
public MultiConstruct(ArrayList<Integer> f){
this();
this.first = f;
System.out.println("MultiConstruct version one handled successfully...");
System.out.println(" ");
}
public MultiConstruct(ArrayList<Float> s){
this();
this.second = s;
System.out.println("MultiConstruct version two handled successfully...");
System.out.println(" ");
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用静态工厂方法而不是构造函数来解决此问题。
在 Joshua Bloch 的书“Effective Java”- Item 1 中,他描述了使用静态工厂方法而不是构造函数的优点(和缺点),其中优点之一是静态工厂方法有名称,与构造函数不同。