Java 将对象数组强制转换为字符串数组是否使用对象的toString()方法?
我需要使用对象的Java 将对象数组强制转换为字符串数组是否使用对象的toString()方法?,java,arrays,string,object,Java,Arrays,String,Object,我需要使用对象的toString()方法将其放入数组。我想知道,如果我将数组强制转换为字符串[],它会使用toString()方法吗 例如: public static String[] toStringArray(MyObject[] myObjects) { // Will this return the toString() representation of each object? return (String[])myObjects; } 不,它将以ClassCas
toString()
方法将其放入数组。我想知道,如果我将数组强制转换为字符串[]
,它会使用toString()
方法吗
例如:
public static String[] toStringArray(MyObject[] myObjects) {
// Will this return the toString() representation of each object?
return (String[])myObjects;
}
不,它将以
ClassCastException
失败
强制转换不会对对象实例进行任何转换。它只是检查它是否具有要将其强制转换到的类型
您可能需要查看
java.util.Arrays.toString(MyObject)
(虽然提供了一个字符串,但不是String[]
)。不,它只会因ClassCastException
而失败
强制转换不会对对象实例进行任何转换。它只是检查它是否具有要将其强制转换到的类型
您可能需要查看
java.util.Arrays.toString(MyObject)
(虽然提供了一个字符串,但不是字符串[]
)。最简单的方法是:
public static String[] toStringArray(MyObject[] myObjects) {
return Stream.of(myObjects)
.map(MyObject::toString)
.toArray(String[]::new);
}
最简单的方法是:
public static String[] toStringArray(MyObject[] myObjects) {
return Stream.of(myObjects)
.map(MyObject::toString)
.toArray(String[]::new);
}
为什么要用列表呢?因为它很容易写。效率不高,当然,但很简单。你误解我了。您只需执行
返回Stream.of(myObjects).map(MyObject::toString).toArray(String[]::new)代码>。没有必要列清单,是的。这就是我一次做太多事情的结果。劣质代码。为什么要使用列表?因为它很容易编写。效率不高,当然,但很简单。你误解我了。您只需执行返回Stream.of(myObjects).map(MyObject::toString).toArray(String[]::new)代码>。没有必要列清单,是的。这就是我一次做太多事情的结果。劣质代码。