PMD将报告违规行为:
ArrayList<Object> list = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)
违规是"避免使用像'ArrayList'这样的实现类型;而是使用接口".
以下行将更正违规行为:
List<Object> list = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)
为什么要使用后者List而不是ArrayList?
嗨,我之间没有一个明确的想法,
List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
和
ArrayList<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud) 作为一个C++老朋友,我设法解决了我的问题,但我不能在这里围绕底层Java机制:
Vector<Object> x = new Vector<Object>(); // OK
ArrayList<Object> y = new ArrayList<Object>(); // OK
List<Object> zzz = new ArrayList<Object>(); // OK solves problem below but question remains
List<Object> z = new List<Object>(); // WHY? Compiler error: Cannot instantiate
Run Code Online (Sandbox Code Playgroud) 我是java的新手,当我浏览网上的许多例子的代码时,我看到人们在几乎所有情况下都ArrayList只是声明变量List.
List<String> myList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
我不明白这样做是否有一些特定的优势.为什么它不能成为一个ArrayList本身,就像这样:
ArrayList<String> myList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud) 我无法绕过一个概念.我正在尝试将a转换ArrayList<String>为List(或List<String>),但我一直遇到强制转换异常.是的,我看到了将字符串数组转换为列表的代码,但我觉得这是一个不同的场景.我的相关代码在这里,请注意声明是因为我使用GWT,因此必须声明一些东西为静态和最终...
private static List<String> values;
Ioma.dataservice.getPendingOrders(new AsyncCallback<ArrayList<Order>>(){
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(ArrayList<Order> result) {
ArrayList<String> orderNumbers = new ArrayList<String>();
//problem here, cannot cast arraylist<string> to list string for some reason? idk. SO it maybe?
for(int i=0;i<result.size();i++){
System.out.println("ordernumber: " + result.get(i).getOrderNumber());
System.out.println("arraysize: " + result.size());
orderNumbers.add(Integer.toString(result.get(i).getOrderNumber()));
}
for (int i=0; i<orderNumbers.size();i++){
values.add(orderNumbers.get(i));
}
cellList.setRowData(values);
}
});
Run Code Online (Sandbox Code Playgroud)
基本上我正在尝试创建一个想要List作为输入的cellList.我从数据库查询中获取了一个订单数组列表,然后迭代以获取订单号,然后将其放入arrayList中,然后我想将其转换为List以在cellList中使用.有人可以解释为什么我不能这样做以及适当的方法应该是什么?