2014-01-22 41 views
0

如何将对象列表转换为相应的字符串列表而不扫描for循环的所有元素?转换列表<Object>到列表<String>没有?

+4

该列表是否实际包含字符串或您是否需要显式转换它们? –

+0

如何将所有对象转换为字符串?或者通常你需要获得所有toString()? – vels4j

+0

谢谢。该列表包含String对象。 –

回答

5

你可以试试这个:

List<String> variable = (List<String>)(List<?>) yourList; 
+0

谢谢。如果我需要调用toString,该怎么办? –

+0

没有循环? – Balduz

+0

@HomayounAfshari我很困惑。您刚才在问题中的评论中说过您的列表包含字符串。你为什么要在String上调用'toString'? – Pshemo

1

在你指定你想调用toString()方法的注释。这可以用番石榴(https://code.google.com/p/guava-libraries/):

import com.google.common.base.Function; 
import com.google.common.collect.Lists; 

import java.util.ArrayList; 
import java.util.List; 

public class Application { 

    public static void main(String[] args) { 
     Function<Object, String> objectToString = new Function<Object, String>() { 
      public String apply(Object object) { 
       return object.toString(); 
      } 
     }; 
     List<Object> yourList = new ArrayList<Object>(); 
     yourList.add("foo"); 
     List<String> strings = Lists.transform(yourList, objectToString); 
    } 
} 
相关问题