我收到这个构造函数的错误,我不知道如何修复?我是java的初学者。这是我试图学习的一个示例练习:
/**
* Create an array of size n and store a copy of the contents of the
* input argument
* @param intArray array of elements to copy
*/
public IntArray11(int[] intArray)
{
int i = 0;
String [] Array = new String[intArray.length];
for(i=0; i<intArray.length; ++i)
{
Array[i] = intArray[i].toString();
}
}
答案 0 :(得分:16)
int
不是java中的对象(它是primitive),因此您无法在其上调用方法。
解决它的一个简单方法是使用
Integer.toString(intArray[i])
答案 1 :(得分:5)
我会更喜欢这样写
public String[] convertToStrings(int... ints) {
String[] ret = new String[ints.length];
for(int i = 0; i < intArray.length; ++i)
ret[i] = "" + ints[i];
return ret;
}
或者在Java 8中你可以写
public List<String> convertToStrings(int... ints) {
return IntStream.of(ints).mapToObj(Integer::toString).collect(toList());
}
这使用;
i
,String[]
,如果我们担心效率,我们很可能完全取消这种方法。
String.valueOf(int)
并不比Integer.toString(int)
快。从String
中的代码可以看出,String实现只调用了Integer.toString
/**
* Returns the string representation of the {@code int} argument.
* <p>
* The representation is exactly the one returned by the
* {@code Integer.toString} method of one argument.
*
* @param i an {@code int}.
* @return a string representation of the {@code int} argument.
* @see java.lang.Integer#toString(int, int)
*/
public static String valueOf(int i) {
return Integer.toString(i);
}
答案 2 :(得分:4)
您的代码尝试调用int
值的toString()方法。在Java中,int
是一种原始类型,没有方法。改变这一行:
Array[i] = intArray[i].toString();
到
Array[i] = String.valueOf(intArray[i]);
并且代码应该运行。顺便说一下,你应该使用lowerCamelCase作为变量和字段。
编辑:对于它的价值,String.valueOf(int)比我系统上的Integer.toString(int)快一点(Java 1.7)。