繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM