你好我目前正在得到 的常見錯誤「Domino.java:32:錯誤:非靜態方法getValue()不能從靜態上下文中引用」 我有種理解,這是一個問題,因爲它只是getValue方法的一個實例。在這個compareTo方法中,我試圖傳入一些多米諾骨牌,並將其與集多米諾骨牌相比較,並根據一些比較返回-1,0,1。我需要多米諾骨牌兩邊的總和來比較它們,這就是爲什麼我想要獲得domino.getValue(),在這一點上,我只是不知道如何實現這一點。任何建議或幫助將不勝感激非靜態方法不能從靜態上下文中引用
public class Domino {
public static int side1;
public static int side2;
public Domino(int aside, int bside){
side1 = aside;
side2 = bside ;
}
public Domino() {
side1 = 4;
side2 = 5;
}
public boolean isDouble(){
if(side1 == side2) {
return true;
}
else {
return false;
}
}
public int getValue(){
return side1 + side2;
}
public int compareTo(Domino someDomino)
{
int count = 0;
if(Domino.getValue() < someDomino.getValue()){
count = -1;
}if(Domino.getValue() > someDomino.getValue()){
count = 1;
}
if(Domino.getValue() == someDomino.getValue()){
count = -0;
}
return count;
}
public static void main(String args[]) {
}
}
除的方法,從這個問題你問關於compareTo(...)方法,這將失敗,因爲您將每邊的值存儲爲靜態變量而不是實例變量。當您創建第二個Domino時,它將覆蓋第一個存儲的值 - 它們將具有相同的值。 – JonathanS