你好我目前正在得到 的常见错误“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