我对Java很新,所以不要攻击我大声笑但是我已经在其中一个中创建了两个类和一个ArrayList。我无法编译并收到此错误:"incompatible types: java.lang.String cannot be converted to int"
但此处没有转换任何内容?
头等舱:
import java.util.ArrayList;
public class TestScores {
private ArrayList < Class > scores;
public int studentScores;
public TestScores() {
scores = new ArrayList < Class > ();
}
public void add(String name, int score) {
scores.add(new Class(name, score));
}
}
第二课:
public class Class {
public int score;
public String name;
public Class(int aScore, String aName) {
score = aScore;
name = aName;
}
}
答案 0 :(得分:3)
首先,不要打电话给Class
班。有一个名为Class
的内置类:
https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html
虽然允许,但目前还不清楚。养成给出描述性名称的习惯。
您的错误是由反向的参数引起的。您构建了一个新类,如:
new Class(name, score)
但是你的构造函数首先要求得分,然后命名:
public Class(int aScore, String aName)
Java中的参数与Python中的参数不同,它们与 position 不匹配。所以你试图将本地String name
绑定到int参数aScore
,因此编译错误。
答案 1 :(得分:0)
将构造函数更改为
(?<=\n{2}|^)
你的构造函数接受第一个整数然后接受字符串,但是你首先传递字符串。
答案 2 :(得分:0)
public Class(int aScore, String aName)
收到第一个参数int
和第二个String
,但您反之亦然。
在scores.add(new Class(name, score));
中,您首先发送String
,然后发送int
秒。它应该是
scores.add(new Class(score, name));