如何仅使用 Java 7(及以下)将原始数据类型列表转换为列表 <String>

How to convert List of raw data type to List<String> using Java 7(and below) only

有很多关于类似主题的质量检查帖子,例如:

Java: Converting lists of one element type to a list of another type

How to transform List to another List

但是,他们都使用了一些额外的库,这对我来说是不合适的。我想找到仅使用 Java 7(及以下)库的最佳解决方案。

假设我们有:

List list = new LinkedList(); 
list.add(2);
list.add("Mike");
list.add("John");
list.add(11);

transformer(list); // transform List to List<String>
list.get(0).toLowerCase(); 

如何实现void transform(List list)方法?

您可以检查列表的内容并调用 String.valueOf(Object) 每一个:

List<String> result = new LinkedList<>();
for (Object o : list) {
    result.add(String.valueOf(o));
}

编辑:
这也可以通过 ListIterator 内联完成,如果您愿意的话:

ListIterator iter = list.listIterator();
while (iter.hasNext()) {
    iter.set(String.valueOf(iter.next()));
}

您需要 return 一个新的 List<String>,然后分配它。迭代输入 List,并在每个元素上调用 toString() - 将其添加到新的 List 以进行 returning。像,

public static List<String> transformer(List list) {
    List<String> al = new ArrayList<String>();
    Iterator iter = list.iterator();
    while (iter.hasNext()) {
        al.add(iter.next().toString());
    }
    return al;
}

那你可以这样称呼它

List<String> stringList = transformer(list);
stringList.get(0).toLowerCase();

你做不到你需要的。但是,您可以通过编写类似 stringList.get(0).toLowerCase();

的内容来访问 String 方法