Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取不兼容的类型和数组所需的错误_Java_List_Error Handling - Fatal编程技术网

Java 获取不兼容的类型和数组所需的错误

Java 获取不兼容的类型和数组所需的错误,java,list,error-handling,Java,List,Error Handling,我正在努力使读数成为正确的类型,以使代码正常工作。我很难想出如何克服这个错误,但我不确定这是否与我有关 List<String> readings = new ArrayList<String>(); Matcher m = Pattern.compile("\\d{3}").matcher(s); while (m.find()) { readings.add(m.group()); } readings = readings.toArray(new Strin

我正在努力使读数成为正确的类型,以使代码正常工作。我很难想出如何克服这个错误,但我不确定这是否与我有关

List<String> readings = new ArrayList<String>();
Matcher m = Pattern.compile("\\d{3}").matcher(s);
while (m.find()) {
    readings.add(m.group());
}
readings = readings.toArray(new String[0]);
for (int i = 0; i < numberOfElectrodes; i++) {
    packet[i] = Integer.parseInt(readings[i]);

}
List reads=new ArrayList();
Matcher m=Pattern.compile(\\d{3}”).Matcher;
while(m.find()){
增加(m.组());
}
reads=reads.toArray(新字符串[0]);
对于(int i=0;i
它显示错误:

错误:(313,44)java:不兼容的类型:没有类型为的实例 变量T的存在使得T[]符合java.util.List

错误:(322,58)java:需要数组,但找到java.util.List

  • reads=reads.toArray(新字符串[0])

    由于
    读数
    是一个列表,因此不能为其分配数组

  • 再说一遍

    packet[i] = Integer.parseInt(readings[i]);
    
    reads
    不是数组,要从列表中获取元素,必须使用
    get()
    。因此,它应该是:

    packet[i] = Integer.parseInt(readings.get(i));
    
    packet[i] = Integer.parseInt(readings.get(i));
    
  • reads=reads.toArray(新字符串[0])

    由于
    读数
    是一个列表,因此不能为其分配数组

  • 再说一遍

    packet[i] = Integer.parseInt(readings[i]);
    
    reads
    不是数组,要从列表中获取元素,必须使用
    get()
    。因此,它应该是:

    packet[i] = Integer.parseInt(readings.get(i));
    
    packet[i] = Integer.parseInt(readings.get(i));
    
  • 问题在于:

    readings = readings.toArray(new String[0]);
    
    变量
    读数
    先前声明为:

    List<String> readings = ...;
    
    然后在下面的for循环中引用该变量:

    for (int i = 0; i < numberOfElectrodes; i++) {
        packet[i] = Integer.parseInt(readingsArray[i]); // <--
    
    问题在于:

    readings = readings.toArray(new String[0]);
    
    变量
    读数
    先前声明为:

    List<String> readings = ...;
    
    然后在下面的for循环中引用该变量:

    for (int i = 0; i < numberOfElectrodes; i++) {
        packet[i] = Integer.parseInt(readingsArray[i]); // <--
    

    您可能熟悉Python或Ruby之类的语言,在这些语言中,变量可以保存任何类型的对象,甚至可以在程序执行的不同点保存不同类型的对象。然而,Java是在声明变量时确定变量类型的语言之一,并且它们从不改变

    在您的程序中,
    读数的类型为
    列表

    那你以后就可以做了

    packet[i] = Integer.parseInt(readingsArray[i]);
    
    另一方面,如果您不特别需要一个数组(我判断这很可能不是),那么您可以删除第313行,在第322行中删除


    您可能熟悉Python或Ruby之类的语言,在这些语言中,变量可以保存任何类型的对象,甚至可以在程序执行的不同点保存不同类型的对象。然而,Java是在声明变量时确定变量类型的语言之一,并且它们从不改变

    在您的程序中,
    读数的类型为
    列表

    那你以后就可以做了

    packet[i] = Integer.parseInt(readingsArray[i]);
    
    另一方面,如果您不特别需要一个数组(我判断这很可能不是),那么您可以删除第313行,在第322行中删除