Java:找不到符号(数组类)

时间:2018-07-16 17:27:37

标签: java arrays compiler-errors

当我尝试向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初学者,如果您发现任何其他改进代码的方法,请告诉我。

谢谢

1 个答案:

答案 0 :(得分:2)

因为Array丢失,所以不知道import java.lang.reflect.Array是什么。

但是实际上您根本不应该使用反射。 According to Oracle

  

反射通常由需要检查或修改Java虚拟机中运行的应用程序的运行时行为的程序使用。这是一项相对高级的功能,只应由对语言基础有很深了解的开发人员使用。

您需要的是:

result[index] = temp;