[英]Java: cannot find symbol (Array class)
当我尝试向Java中的数组添加整数时,我遇到了一个问题。 任务来自CodeWars,它将取一个整数(如12345)并将其作为整数的反向数组(如{5、4、3、2、1})返回。
现在,我的代码编译并在eclipse上运行,即使未按预期返回数组,但我认为代码大战为此编辑了toString类。
无论如何,这是我的代码:
package CodeWars;
import java.lang.reflect.Array;
public class Digitize
{
public static void main(String[] args)
{
System.out.println(digitize(472837428));
}
public static int[] digitize(long n)
{
String conv = Long.toString(n);
int[] result = new int[conv.length()];
for(int i = 0, index = conv.length(); i == conv.length(); i++, index--)
{
int temp = Character.getNumericValue(conv.charAt(i));
Array.setInt(result, index, temp);
}
return result;
}
}
而且由于某种原因的代码大战不希望我们拥有主要方法,因此这是我粘贴到此处的内容:
import java.util.*;
public class Kata
{
public static int[] digitize(long n)
{
String conv = Long.toString(n);
int[] result = new int[conv.length()];
for(int i = 0, index = conv.length(); i == conv.length(); i++, index--)
{
int temp = Character.getNumericValue(conv.charAt(i));
Array.setInt(result, index, temp);
}
return result;
}
}
该代码然后在此处的检查方法上运行:
import org.junit.Test;
import static org.junit.Assert.assertArrayEquals;
public class DigitizeExampleTests {
@Test
public void tests() {
assertArrayEquals(new int[] {1, 3, 2, 5, 3}, Kata.digitize(35231));
}
}
因此,当我在CodeWars中运行代码时,我会被抛出:
/workspace/java/src/Kata.java:12: error: cannot find symbol
Array.setInt(result, index, temp);
^
symbol: variable Array
location: class Kata
1 error
我在Google各处搜索,但是找不到符号的所有其他问题都是拼写错误的类或方法调用。 有任何想法吗? 另外,作为Java初学者,如果您发现任何其他改进代码的方法,请告诉我。
谢谢
它不知道Array
是什么,因为缺少import java.lang.reflect.Array
。
但是实际上您根本不应该使用反射。 根据Oracle的说法 :
反射通常由需要检查或修改Java虚拟机中运行的应用程序的运行时行为的程序使用。 这是一个相对高级的功能,只应由对语言基础有很深了解的开发人员使用。
所有你需要的是:
result[index] = temp;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.