未使用字段的Java值

时间:2016-06-05 13:18:56

标签: java field warnings

我有类ModelPlayer,int字段mainActionquickAction以及方法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);
            }
        }


        }

}

3 个答案:

答案 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'的选项。