BlueJ Error: "Incompatible types: int cannot be converted java.lang.String" AND "Incompatible types: java.lang.String cannot be converted to int"
BlueJ Error: "Incompatible types: int cannot be converted java.lang.String" AND "Incompatible types: java.lang.String cannot be converted to 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;
}
}
正如您可能看到的那样,我试图不仅能够在我第一次使用对象时添加新的 name/grade/gender/int 数字,而且还可以通过使用方法来添加。
我遇到的问题似乎是这部分引起的:
public String getNumber() {
return number;
}
public void setNumber( String number ) {
this.number = number;
}
当我将鼠标悬停在第二行的 "number" 上时,BlueJ 给出以下错误:"Incompatible types: int cannot be converted to java.lang.String".
尽管当我将鼠标悬停在第五行的 "number" 上时,BlueJ 给出了错误:"Incompatible types: java.lang.String cannot be converted to int".
我尝试在这个网站上搜索过类似的问题,但没有找到他们尝试使用方法填充的int数字的地方。
String 和 int 是两种 不同的类型,与 Integer 和 int 相比,没有编译器可以自动将一个转换为另一个。
但是有多种辅助方法可以解决这个问题,例如:
String asString = Integer.toString(123);
将 int
变为 String
;
int number = Integer.parseInt("123");
反之亦然。
郑重声明:您可以写
Integer integerObject = 5;
被称为auto-boxing。
我对编码很陌生,在尝试了多种解决方案后,我仍然无法弄清楚为什么我做的是错的。这是我的完整代码:
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;
}
}
正如您可能看到的那样,我试图不仅能够在我第一次使用对象时添加新的 name/grade/gender/int 数字,而且还可以通过使用方法来添加。
我遇到的问题似乎是这部分引起的:
public String getNumber() {
return number;
}
public void setNumber( String number ) {
this.number = number;
}
当我将鼠标悬停在第二行的 "number" 上时,BlueJ 给出以下错误:"Incompatible types: int cannot be converted to java.lang.String".
尽管当我将鼠标悬停在第五行的 "number" 上时,BlueJ 给出了错误:"Incompatible types: java.lang.String cannot be converted to int".
我尝试在这个网站上搜索过类似的问题,但没有找到他们尝试使用方法填充的int数字的地方。
String 和 int 是两种 不同的类型,与 Integer 和 int 相比,没有编译器可以自动将一个转换为另一个。
但是有多种辅助方法可以解决这个问题,例如:
String asString = Integer.toString(123);
将 int
变为 String
;
int number = Integer.parseInt("123");
反之亦然。
郑重声明:您可以写
Integer integerObject = 5;
被称为auto-boxing。