不兼容的类型:从短到短的可能有损转换

时间:2017-06-13 18:46:20

标签: java

问题我得到的是吸气剂和二传手。

我为可变数据类型short创建了setter和getter。

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public String getFavoriteColor() {
    return favoriteColor;
}

public void setFavoriteColor(String favoriteColor) {
    this.favoriteColor = favoriteColor;
}

public long getFavoriteNumber() {
    return favoriteNumber;
}

public void setFavoriteNumber(long favoriteNumber) {
    this.favoriteNumber = favoriteNumber;
}

public short getHeightInCent() {
    return heightInCent;
}


public void setHeightInCent(short heightInCent) {
    this.heightInCent = heightInCent;
}


public short getWeight() {
    return weight;
}


public void setWeight(short weight) {
    this.weight = weight;
}

private String name;
private int age;
private String favoriteColor;
private long favoriteNumber;
private short heightInCent;
private short weight;

上面是存储此数据的Object类。在我的主要课程中,我正在调用此数据。除了heightInCent和重量之外,一切都被称为罚款。我没有做任何不同的事情,并想知道为什么我得到这个错误?我已经浏览了整个网络和这里的类似问题,但我发现的一切都是将一种数据类型转换为另一种数据类型。或者沿着那条线的东西。 以下是我的主要课程。

 public static void main(String args[]){

        PeopleObjects person1 = new PeopleObjects();


        person1.setAge(21);
        person1.setName("James Bloggs");
        person1.setFavoriteColor("Green");
        person1.setFavoriteNumber(3248505);
        person1.setWeight(144);
        person1.setHeightInCent(159);

        System.out.println(person1.getName() + ", " + person1.getAge() + ", " + person1.getHeightInCent() + "cm, " + person1.getWeight() + "lb" );
        System.out.println("Favorite Color: " + person1.getFavoriteColor());
        System.out.println("Favorite number: " + person1.getFavoriteColor());

        person1.speak();

        int death = person1.yearsUntilDeath();
        System.out.println(death);

        int age = person1.getAge();

        System.out.println(age);

        String name = person1.getName();

        System.out.println(name);

解决这个问题的答案会很棒!更好的是(如果你知道)解释为什么会发生这种情况。谢谢你们!

1 个答案:

答案 0 :(得分:0)

通常:不要使用短路甚至是字节。 Java使用整数而不关心,例如短是意味着。如果你真的必须退回一个短片,你必须先施展它。 只要考虑一下(并没有别的办法):

byte[] someByteArray = {
    (byte) 0x01,
    (byte) 0x63
}