[英]non-static method getDeviceList() cannot be referenced from a static context
[英]Non-static method cannot be referenced from a static context
您好,我目前遇到“ 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类上静态调用方法的。 摆脱Domino.
调用getValue()的一部分。
public int compareTo(Domino someDomino)
{
int count = 0;
if(getValue() < someDomino.getValue()){
count = -1;
}if(getValue() > someDomino.getValue()){
count = 1;
}
if(getValue() == someDomino.getValue()){
count = -0;
}
return count;
}
Domino
是类本身,则需要比较的参数与当前实例的对象( 显式参数 )( 隐含参数 )上,您正在调用方法之一,它是this
public int compareTo(Domino someDomino){
int count = 0;
if(this.getValue() < someDomino.getValue()){
count = -1;
}else if(this.getValue() > someDomino.getValue()){
count = 1;
}
return count;
}
这是一样的:
public int compareTo(Domino someDomino) {
return Integer.compare(this.getValue(), someDomino.getValue());
}
另外:
else if
您的测试不能同时为真, else if
使用else if
equality
,如果不是<
和not >
那么它是==
并且count将已经equals
0
public static int side1;
=> public int side1;
如果它们是静态的,则对于每个 Domino都是相同的 最好添加Comparable接口,以允许对ex列表中的Domino进行排序,方法compareTo()
将自动使用
public class Domino implements Comparable<Domino>{...}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.