2017-06-13 76 views
-4

我得到的問題是與getter和setter。不相容的類型:從短到短可能有損轉換

我爲變量數據類型short創建了setter和getters。

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和weight之外,一切都被稱爲很好。我沒有做任何不同的事情,並想知道爲什麼我得到這個錯誤?我查看了整個網絡和這裏的類似問題,但我發現的一切都是將一種數據類型轉換爲另一種。或者沿着這條線。 以下是我的主要課程。

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); 

解決這個問題的答案會很棒!更好的是(如果你知道的話)解釋爲什麼會發生這種情況。謝謝你們!

+4

你是否_sure_這是錯誤信息? –

+5

你可以發佈[mcve]嗎?如果(1)我們給出了完整程序的代碼,我們可以運行這個代碼來看看自己的問題,並且(2)程序中沒有任何不必要的代碼,那麼我們更容易回答這個問題。 – Dukeling

+0

試着將person1.setWeight(144);改成person1.setWeight((簡稱)144);'和person1.setHeightInCent(159) – Eran

回答

0

一般:不要使用短褲或甚至字節。 Java使用整數並且不關心,例如,意思是短。如果你真的必須退換短片,你必須先投下它。 只是考慮這個(並沒有其他方式):

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

謝謝atmin!這很有幫助!你和Eran幫助我理解我做錯了什麼,爲什麼錯了! – soulparagon

相關問題