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,因此出现编译错误。