Java 无法取消引用int的错误?
这个构造函数有一个错误,我不知道如何修复?我是java的初学者。这是我试图学习的一个示例练习:Java 无法取消引用int的错误?,java,arrays,Java,Arrays,这个构造函数有一个错误,我不知道如何修复?我是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
/**
* 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();
}
}
/**
*创建大小为n的数组并存储
*输入参数
*@param intArray要复制的元素数组
*/
公共内部11(内部[]内部)
{
int i=0;
字符串[]数组=新字符串[intArray.length];
for(i=0;iint
在java中不是一个对象(它是一个对象),因此不能调用它上的方法
解决这个问题的一个简单方法是使用
您的代码试图调用int
值的toString()方法。在Java中,int
是一种基本类型,没有方法。请更改行:
Array[i] = intArray[i].toString();
到
代码应该运行。顺便说一下,变量和字段应该使用lowerCamelCase
编辑:值得一提的是,String.valueOf(int)比Integer.toString(int)在我的系统(Java 1.7)上快一点。
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;
}
您遇到了什么错误?请使用适当的约定:方法名和变量名应以小写字母开头(请参阅我的答案,了解为什么String.valueOf不能快于Integer.toString;),然后它可能是一个基准人工制品。我知道我应该使用JMH进行度量,但我的mvn存储库最近有些破损。
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;
}
public List<String> convertToStrings(int... ints) {
return IntStream.of(ints).mapToObj(Integer::toString).collect(toList());
}
/**
* 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);
}