Java 字段值未使用

Java Value of Field Not Used

我有 class ModelPlayer、int 字段 mainActionquickAction 以及方法 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'