java变量无法解析

时间:2016-05-03 12:41:57

标签: java eclipse variables

最后一行代码给出了错误p1无法解决。我相信这是因为它不在范围内,但我不确定如何解决这个问题。谢谢你的任何帮助。

switch (Player1) 
{
    case "Human":
    { 
        HumanPlayer p1 = new HumanPlayer(sc, theGame);
        break;
    }
    case "Simple":
    { 
        SimpleComputerPlayer p1 = new SimpleComputerPlayer();
        break;
    }
    case "Random":
    { 
        RandomComputerPlayer p1 = new RandomComputerPlayer();
        break;
    }
    case "Expert":
    { 
        ExpertPlayer p1 = new ExpertPlayer();
        break;
    }
}                                                            
p1.setMySymbol(SquareStatus.CROSS);

4 个答案:

答案 0 :(得分:1)

在交换机之外声明Player p1

Player p1;
switch (Player1) {...}
if(p1 != null) p1.setMySymbol(SquareStatus.CROSS);

答案 1 :(得分:0)

你已经在内部定义了HumanPlayer。在开关外定义它

答案 2 :(得分:0)

当您在函数内使用{}时,您正在创建其他范围级别,范围中定义的任何局部变量在范围之外都不可见。

答案 3 :(得分:0)

在这些方面尝试一些事情

webdriverFile = this.getClass().getResource("chromedriver.exe").toString();

然后可能

public static Object getPlayer()
    {
        String Player1 = "Human";


        switch (Player1) {
            case "Human": {
                return new HumanPlayer();

            }
            case "Simple": {
                return new SimpleComputerPlayer();

            }
            case "Random": {
                return  new RandomComputerPlayer();

            }
            case "Expert": {
                return  new ExpertPlayer();

            }

        }
        return null;
    }

可能需要做一些

worker.getPlayer().setMySymbol(SquareStatus.CROSS);

的某个地方。