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行中删除