ArrayList中的类型不兼容,但两者都是String

时间:2016-03-03 21:54:19

标签: java arraylist incompatibletypeerror

我对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;
 }
}

3 个答案:

答案 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));