BlueJ 错误:“不兼容的类型:int 无法转换为 java.lang.String”和“不兼容的类型:java.lang.String 无法转换为 int”

Posted

技术标签:

【中文标题】BlueJ 错误:“不兼容的类型:int 无法转换为 java.lang.String”和“不兼容的类型:java.lang.String 无法转换为 int”【英文标题】:BlueJ Error: "Incompatible types: int cannot be converted java.lang.String" AND "Incompatible types: java.lang.String cannot be converted to int" 【发布时间】:2017-10-03 17:11:46 【问题描述】:

我对编码非常陌生,在尝试了多种解决方案后,我仍然无法弄清楚为什么我做错了。这是我的完整代码:

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数通过使用方法来填充的地方。

【问题讨论】:

numberint 而不是 String,请将您的方法签名更改为 public int getNumber()public void setNumber( int number ) 【参考方案1】:

String 和 int 是两种不同的类型,与 Integer 和 int 相比,没有编译器魔法可以自动将一种转换为另一种。

但是有多种辅助方法可以解决这个问题,例如:

String asString = Integer.toString(123);

int 变成String;和

int number = Integer.parseInt("123"); 

反过来说。

只是为了记录:你可以写的事实

Integer integerObject = 5;

被称为auto-boxing。

【讨论】:

以上是关于BlueJ 错误:“不兼容的类型:int 无法转换为 java.lang.String”和“不兼容的类型:java.lang.String 无法转换为 int”的主要内容,如果未能解决你的问题,请参考以下文章

为什么BlueJ给我的代码一个“无法访问的语句”错误? [重复]

java中的ComboBox不起作用bluej

BlueJ 不需要 main() 方法吗? [关闭]

私有方法的 JAVADOC (BlueJ)

在 BlueJ 中添加库

项目层次结构 Idea 而不是 BlueJ