BlueJ错误:“不兼容的类型:int无法转换java.lang.String”和“不兼容的类型:java.lang.String不能转换为int”
问题描述:
我很新,编码和尝试多种解决方案后,我来了与此同时,我仍然无法弄清楚为什么我所做的是错误的。这是我的全码:BlueJ错误:“不兼容的类型:int无法转换java.lang.String”和“不兼容的类型:java.lang.String不能转换为int”
public class Student {
private String name;
private String grade;
private String gender;
private int number;
public Student(String name, String grade, String gender, int number) {
this.name = name;
this.grade = grade;
this.gender = gender;
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
正如你很可能会看到,我想不仅能够添加新的名称/等级/性别/ INT数,当我第一次使用一个对象,而且还使用方法。
我得到这个问题似乎在这部分原因引起的:
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
当我悬停在第二行“数”,BlueJ的提供了以下错误:“不兼容类型:INT不能转换为java.lang.String“。
虽然当我将鼠标悬停在第五行的“数字”上时,BlueJ给出了错误:“不兼容的类型:java.lang.String不能转换为int”。
我试过在这个网站上搜索类似的问题,但还没有找到任何他们试图用int数来填充使用方法的地方。
答
字符串和int是两个不同的类型,与Integer和int相比,没有编译器魔法可以自动将其转换为另一个类型。
但也有不同的辅助方法来解决这个问题,这样的:
String asString = Integer.toString(123);
果然int
为String
;和
int number = Integer.parseInt("123");
其他方式。
而仅仅是为了记录:你可以写
Integer integerObject = 5;
被称为auto-boxing的事实。
'number'是一个'int'不是'String',将你的方法签名改为'public int getNumber()'和'public void setNumber(int number)'。 – Berger
并提示:您使用“,”来分隔(方法的参数),而不是“;” ...我在你的输入问题中自由地解决了这个小问题。 – GhostCat
没问题 - 您的答案都帮助我了,谢谢帮助我。 – Ann