【发布时间】:2016-01-15 06:06:42
【问题描述】:
我正在尝试创建一个具有基础对象的类。基础对象将用于创建一些对象,并根据力量和能量提升在另一个类别中“战斗”。
编译“错误,无法访问的语句”时出现此错误,它指向指向返回的第 27 行,有人可以帮我吗?
public class Superhero {
private String superheroName;
private int superheroStrength;
public int powerUp;
public Superhero (String superheroName, int superheroStrength, int powerUp){
this.superheroName = superheroName;
this.superheroStrength = superheroStrength;
System.out.println("Superhero: " + superheroName);
System.out.println("Strength: " + ( superheroStrength + powerUp));
}
public Superhero (String superheroName, int powerUp){
this.superheroName = superheroName;
superheroStrength = 10;
System.out.println("Strength: " + ( superheroStrength+powerUp));
}
public int getStrength(){
return superheroStrength += powerUp;
}
public void powerUp (int powerUp){
this.powerUp += powerUp;
}
public Superhero battle(Superhero1 opponent){
if (this.getStrength()>opponent.getStrength());
return this;
return opponent;
}
public String toString(){
return this.superheroName;
}
}
【问题讨论】:
-
删除此行末尾的
;:if (this.getStrength()>opponent.getStrength()); -
或者,将上述
;替换为{}并将return this;放入块中。这将使它更具可读性,解决无法访问的问题,并使其更加明显,因为现在它甚至没有缩进。 -
这就是为什么您应该始终对
if语句使用大括号的原因之一,即使它们只包含一个语句。 -
@JonK 即使你有大括号,也同样可能犯同样的错误。
标签: java object return unreachable-statement