如何在交换机中使用String?

时间:2017-03-29 20:13:39

标签: java string nullpointerexception switch-statement

当我尝试这样做时,IDE会抛出NullPointerException。我想只有两种性别可供选择

public  String typeOfGender
    {
        switch (typeOfGender)
        {
            case "Male":
                    typeOfGender = "Male";
                    break;
            case "Female":
                    typeOfGender = "Female";
                    break;
            default:
                    System.out.println(" Unrecognized gender." );
        }
    }

3 个答案:

答案 0 :(得分:1)

您尚未初始化typeOfGender。它是null。这就是为什么。尝试

typeOfGender="Male";

顺便说一句,你的代码没有意义。如果typeOfGender等于"男性",则指定"男性"它呢?

答案 1 :(得分:0)

导致NullPointerExeption,因为您的字符串为null

但是,为了将来参考,这里是一个带字符串的switch-case的例子:

    String string = "foo";
    switch (string) {
        case "foo":
            System.out.println("foo");
            break;
        case "bar":
            System.out.println("bar");
            break;
        default:
            System.out.println("Mushroom Stew!");
            break;
    }

答案 2 :(得分:0)

我经常使用它们没有问题,例如下面的例子。你扔掉它的唯一原因就是你将null传递给它。

private string GetMailBody(string regionCode)
{
    switch(regionCode)
    {
        case "qc":
            //Do some stuff
            break;

        default:
            //If not specified, we assume US, so we do that.
            break;
    }

    return "String we should have edited above";
}