我需要为我的 nestList
使用泛型。我可以使用什么语法来将 Integer
和 String
列表添加到嵌套列表以及任何其他类型的列表中?
// integer list
List<Integer> listInteger = new ArrayList<Integer>(Arrays.asList(1, 2));
// string list
List<String> listString = new ArrayList<String>(Arrays.asList("abc", "xyz"));
// nested lists.
List nestedList = new ArrayList();
nestedList.add(listInteger);
nestedList.add(listString);
nestedList.add("A");
最佳答案
因为你想存储列表和非集合对象(“A”)你应该在你的集合中存储对象,比如:
import java.util.*;
public class Main {
public static void main(String[] args)
{
// integer list
List<Integer> listInteger = new ArrayList<Integer>(Arrays.asList(1, 2));
// string list
List<String> listString = new ArrayList<String>(Arrays.asList("abc", "xyz"));
// nested lists.
List<Object> nestedList = new ArrayList<Object>();
nestedList.add(listInteger);
nestedList.add(listString);
nestedList.add("A");
}
}
请注意 List<Object>
只是为了避免编译器提示您的集合没有类型。实际上,List<Object>
和 List
是一样的。
你可以使用这个来抑制警告:
import java.util.*;
public class Main {
@SuppressWarnings({"rawtypes", "unchecked"})
public static void main(String[] args)
{
// integer list
List<Integer> listInteger = new ArrayList<Integer>(Arrays.asList(1, 2));
// string list
List<String> listString = new ArrayList<String>(Arrays.asList("abc", "xyz"));
// nested lists.
List nestedList = new ArrayList();
nestedList.add(listInteger);
nestedList.add(listString);
nestedList.add("A");
}
}
但总的来说,解决方案并不好。 我没有您的所有要求,但更好的主意是有一个对象来存储您所有的集合和对象。您的代码会更干净,并且没有 @SuppressWarnings,这被认为是不好的。
类似于:
MyObj myobj = new MyObj();
nestedList.setIntegers(listInteger);
nestedList.setStrings(listString);
nestedList.setSomeProperty("A");
关于java - 如何将泛型添加到我的代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24643631/