Rom*_*dgz 0 java list arraylist
我有一些ArrayList声明.其中一些是ArrayList<Integer>和其他人一样ArrayList<Double>.
我想从另一个类中获取它们,所以我写了一个方法:
private ArrayList<Double> list1, list2;
private ArrayList<Integer> list3;
public ArrayList getList(String nameOfList){
ArrayList myList = new ArrayList();
if(nameOfList.equals("list1")) myList = list1;
else if(nameOfList.equals("list2")) myList = list2;
else if(nameOfList.equals("list3")) myList = list3;
return myList;
}
Run Code Online (Sandbox Code Playgroud)
编译,但引发了一些警告:
*ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized* in the method above, and *Type safety: The expression of type ArrayList needs unchecked conversion to conform to List<? extends Number>* when calling the method from here:
XYSeries series = new SimpleXYSeries(data.getList("list1"), data.getList("list2"), "My chart");
where SimpleXYSeries is a chart whose constructor expects to be getting **(List<? extends Number>, List<? extends Number>, String)**.
Run Code Online (Sandbox Code Playgroud)
做我打算做的事情的正确方法是什么?
使用多种方法而不是一种上帝方法.
这是一个糟糕的设计,有一个getList方法使用a String来选择一个成员.相反,应该有多个方法 - 每个列表一个.然后每个方法都可以返回适合其列表的类型.
| 归档时间: |
|
| 查看次数: |
12313 次 |
| 最近记录: |