Java 字段值未使用
Java Value of Field Not Used
我有 class ModelPlayer
、int 字段 mainAction
和 quickAction
以及方法 quickAction()
,基本上我在方法中设置了 quickAction值,并从中执行 4 种方法之一。但是我得到警告说我没有使用 quickAction
我想知道为什么,因为这 4 种方法之一只能在我设置 quickAction
的值后执行,所以我不明白为什么它说我没有使用它。
(NOTE: the methods setQuickAction()
and getQuickAction()
shown in
the method belong to the class Player
, so they're not related)
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);
}
}
}
}
您使用的不是this.quickAction
,而是输入的参数
所以你只是给 this.quickAction
分配了一个值,但你没有使用它。
尝试将 switch(quickAction)
替换为 switch(this.quickAction)
,警告应该会消失。
您还应该在任何 case
之后使用 break
,请参阅 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
我相信你会收到这个错误,因为你使用了 quickAction 方法参数
public void quickAction(Player player,int quickAction)
评估 switch 语句,而不是私有 class 变量,因此私有 class 变量
private int quickAction;
...
this.quickAction
没有在任何地方使用,因此出错。
IDE 告诉您警告,因为 quickAction
字段从未实际使用过。
在 public void quickAction(Player player,int quickAction)
方法中,您实际上从未使用过 字段 快速操作。您正在使用从方法传入的 quickAction
。
有一个 Javabean standard 指示您应该如何构建对象和字段。您不需要遵循此标准,但它广泛用于在 class.
中定义 'properties'
您需要知道的是,对于您考虑 class 的每个字段,您都有一个 'getter' 和一个 'setter'。考虑下面的代码
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 甚至可以让您从 class.
中的字段中选择 generate these 'getters' and 'setters'
我有 class ModelPlayer
、int 字段 mainAction
和 quickAction
以及方法 quickAction()
,基本上我在方法中设置了 quickAction值,并从中执行 4 种方法之一。但是我得到警告说我没有使用 quickAction
我想知道为什么,因为这 4 种方法之一只能在我设置 quickAction
的值后执行,所以我不明白为什么它说我没有使用它。
(NOTE: the methods
setQuickAction()
andgetQuickAction()
shown in the method belong to the classPlayer
, so they're not related)
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);
}
}
}
}
您使用的不是this.quickAction
,而是输入的参数
所以你只是给 this.quickAction
分配了一个值,但你没有使用它。
尝试将 switch(quickAction)
替换为 switch(this.quickAction)
,警告应该会消失。
您还应该在任何 case
之后使用 break
,请参阅 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
我相信你会收到这个错误,因为你使用了 quickAction 方法参数
public void quickAction(Player player,int quickAction)
评估 switch 语句,而不是私有 class 变量,因此私有 class 变量
private int quickAction;
...
this.quickAction
没有在任何地方使用,因此出错。
IDE 告诉您警告,因为 quickAction
字段从未实际使用过。
在 public void quickAction(Player player,int quickAction)
方法中,您实际上从未使用过 字段 快速操作。您正在使用从方法传入的 quickAction
。
有一个 Javabean standard 指示您应该如何构建对象和字段。您不需要遵循此标准,但它广泛用于在 class.
中定义 'properties'您需要知道的是,对于您考虑 class 的每个字段,您都有一个 'getter' 和一个 'setter'。考虑下面的代码
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 甚至可以让您从 class.
中的字段中选择 generate these 'getters' and 'setters'