List<Object> frames = new ArrayList();
List<String> names = new ArrayList();
frames.add(names);
//compiler error
frames.get(0).add("ABCD");
由于 .get()
返回对象类型,而对象类型没有 .add()
方法,因此编译器会引发错误。如何将对象类型转换为列表类型?
最佳答案
你有两个选择:
更改
frames
至List<List<String>>
如果列表frames
将始终包含一个字符串列表。它是安全的,但仅限于一种类型。List<List<String>> frames = new ArrayList<List<String>>();
获取时使用类型转换。这并不安全,我建议您尽可能避免进行类型转换。此处将检查是否从
frames
获取了项目。列表本身就是一个列表:Object first = frames.get(0); if (first instanceof List) { ((List<String>) first).add("ABCD"); }
此外,尽量避免原始类型。在这种情况下使用钻石 <>
声明中的运算符:
List<Object> frames = new ArrayList<>();
List<String> names = new ArrayList<>();
关于java - 如何将 Object 类型转换为 List<Object> 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50658065/