ArrayList 中的不兼容类型错误,但两者都是 String
Incompatible types error in ArrayList but both are String
我是 Java 的新手,所以不要攻击我,哈哈,但我已经在其中创建了两个 classes 和一个 ArrayList。我无法编译并收到此错误:"incompatible types: java.lang.String cannot be converted to int"
但此处未转换任何内容?
首先class:
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));
}
}
第二个Class:
public class Class {
public int score;
public String name;
public Class(int aScore, String aName) {
score = aScore;
name = aName;
}
}
要么将构造函数更改为
public Classname( String aName, int aScore,)
{
score = aScore;
name = aName;
}
您的构造函数首先接受整数,然后接受字符串,但您首先传递的是字符串。
public Class(int aScore, String aName)
接收第一个参数 int
和第二个 String
,但你发送它反之亦然。
在 scores.add(new Class(name, score));
中,您首先发送 String
,然后发送 int
。应该是
scores.add(new Class(score, name));
首先,不要调用 class Class
。有一个名为 Class
的内置 class:
https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html
虽然允许,但还不清楚。养成给事物起描述性名称的习惯。
你的错误是因为参数反了。你构造一个新的 Class 像:
new Class(name, score)
但是您的构造函数首先期望得分,然后是姓名:
public Class(int aScore, String aName)
Java 中的参数,与 Python 中的参数不同,由 position 而不是 name 匹配。因此,您尝试将本地字符串 name
绑定到 int 参数 aScore
,因此出现编译错误。
我是 Java 的新手,所以不要攻击我,哈哈,但我已经在其中创建了两个 classes 和一个 ArrayList。我无法编译并收到此错误:"incompatible types: java.lang.String cannot be converted to int"
但此处未转换任何内容?
首先class:
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));
}
}
第二个Class:
public class Class {
public int score;
public String name;
public Class(int aScore, String aName) {
score = aScore;
name = aName;
}
}
要么将构造函数更改为
public Classname( String aName, int aScore,)
{
score = aScore;
name = aName;
}
您的构造函数首先接受整数,然后接受字符串,但您首先传递的是字符串。
public Class(int aScore, String aName)
接收第一个参数 int
和第二个 String
,但你发送它反之亦然。
在 scores.add(new Class(name, score));
中,您首先发送 String
,然后发送 int
。应该是
scores.add(new Class(score, name));
首先,不要调用 class Class
。有一个名为 Class
的内置 class:
https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html
虽然允许,但还不清楚。养成给事物起描述性名称的习惯。
你的错误是因为参数反了。你构造一个新的 Class 像:
new Class(name, score)
但是您的构造函数首先期望得分,然后是姓名:
public Class(int aScore, String aName)
Java 中的参数,与 Python 中的参数不同,由 position 而不是 name 匹配。因此,您尝试将本地字符串 name
绑定到 int 参数 aScore
,因此出现编译错误。