我正在用 Java 编写一个小排序程序,旨在抓取“学生”对象并根据参数和属性确定其名称、职业和教室。然而,当我尝试创建第一个对象时,出现了问题。 到目前为止,一切看起来都是这样的:
public class Student {
private String name, classroom;
/**
* The career code is as follows, and I quote:
* 0 - Computer Science
* 1 - Mathematics
* 2 - Physics
* 3 - Biology
*/
private short career, idNumber;
public Student (String name, short career, short idNumber){
this.name = name;
this.classroom = "none";
this.career = career;
this.idNumber = idNumber;
}
public static void main(String args[]){
Student Andreiy = new Student("Andreiy",0,0);
}
}
该错误出现在对象创建行,因为由于某种原因,当构造函数调用 Shorts 时,它坚持将 0,0 解释为整数,从而导致不匹配问题。
有什么想法吗?
最佳答案
一种方法是使用强制转换告诉编译器该值是一个 short
:
Student Andreiy = new Student("Andreiy",(short)0,(short)0);
或者,重新定义 Student
类以接受 int
而不是 short
。 (对于职业代码,我建议使用枚举
。)
关于Java构造函数: creating an object,短参数被解释为int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12575876/