Java构造函数: creating an object,短参数被解释为int

标签 java constructor integer short

我正在用 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/

相关文章:

C++ 多重继承构造函数

Golang 工厂方法

javascript - 整数验证未按预期工作

java - 如何将给定整数与可能的根进行比较

java - 如何在java中的简单矩阵中找到非相交的边界矩形?

java - 在 MapReduce 类中打印

java - 在Kotlin中从Observable转换为Mono

javascript - JavaScript 中可链接的、基于 Promise 的类接口(interface)

java - 如何模拟 WebResource Rest 调用

c++ - 在不使用 if 语句、字符数组、apstrings 或 atoi 的情况下,如何将具有两位数字的字符串转换为 int?