我有类ModelPlayer
,int字段mainAction
和quickAction
以及方法quickAction()
,在方法中我基本上设置了quickAction值并从中执行4种方法之一。但我得到的警告是我没有使用quickAction
并且我想知道原因,因为只有在设置quickAction
的值后才能执行4种方法中的一种,所以我不这样做明白为什么它说我没有使用它。
(注意:显示的方法
setQuickAction()
和getQuickAction()
该方法属于类Player
,因此它们不相关)
public class ModelPlayer {
private int mainAction;
private int quickAction;
public void quickAction(Player player,int quickAction){
this.quickAction=quickAction;
if (player.getQuickAction()>0){
switch(quickAction){
case '1':
engageAssistant(player);
player.setQuickAction(0);
case '2':
changeBusinessPermitTile(player);
player.setQuickAction(0);
case '3':
electCouncillorWithAssistant(player);
player.setQuickAction(0);
case '4':
mainAction(player,mainAction);
player.setQuickAction(0);
}
}
}
}
答案 0 :(得分:0)
您没有使用this.quickAction
,而是在输入中传递参数。
所以你只需为this.quickAction
分配一个值,但你没有使用它。
尝试将switch(quickAction)
替换为switch(this.quickAction)
,警告应该消失。
此外,您应该在break
之后使用case
,请参阅https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
答案 1 :(得分:0)
我相信您会收到此错误,因为您使用了quickAction方法参数
public void quickAction(Player player,int quickAction)
评估switch语句,而不是私有类变量,因此是私有类变量
private int quickAction;
...
this.quickAction
不在任何地方使用,因此错误。
答案 2 :(得分:0)
IDE会告诉您警告,因为quickAction
字段从未实际使用过。
在public void quickAction(Player player,int quickAction)
方法中,您实际上从不使用字段 quickAction。您正在使用从该方法传入的quickAction
。
有一个Javabean standard决定了你应该如何构建你的对象和字段。您不需要遵循此标准,但它广泛用于定义'属性'在你班上。
您需要知道的是,对于您认为属于该课程属性的每个领域,您都有一个“吸气者”。和一个“二传手”为了它。请考虑以下代码
public class ModelPlayer {
private int mainAction;
private int quickAction;
// make getters and setters for the fields
public int getQuickAction { return quickAction; }
public void setQuickAction(int quickAction) { this.quickAction = quickAction; }
public int getMainAction { return mainAction; }
pulbic void setMainAction(int mainAction) { this.mainAction = mainAction; }
// remove the quickAction parameter because we can use the field 'quickAction'
public void quickAction(Player player){
if (player.getQuickAction()>0){
switch(quickAction){
case '1':
engageAssistant(player);
player.setQuickAction(0);
case '2':
changeBusinessPermitTile(player);
player.setQuickAction(0);
case '3':
electCouncillorWithAssistant(player);
player.setQuickAction(0);
case '4':
mainAction(player,mainAction);
player.setQuickAction(0);
}
}
}
}
此代码肯定没有任何错误。 Eclipse和其他IDE甚至可以为您提供类中字段generate these 'getters' and 'setters'的选项。