Java 如何在交换机中使用字符串?
当我尝试这样做时,IDE抛出一个Java 如何在交换机中使用字符串?,java,string,nullpointerexception,switch-statement,Java,String,Nullpointerexception,Switch Statement,当我尝试这样做时,IDE抛出一个NullPointerException。我只想选择两种性别 public String typeOfGender { switch (typeOfGender) { case "Male": typeOfGender = "Male"; break; case "Female":
NullPointerException
。我只想选择两种性别
public String typeOfGender
{
switch (typeOfGender)
{
case "Male":
typeOfGender = "Male";
break;
case "Female":
typeOfGender = "Female";
break;
default:
System.out.println(" Unrecognized gender." );
}
}
您尚未初始化Gender的类型。它是空的。这就是为什么。试一试
typeOfGender="Male";
顺便说一下,您的代码没有意义。如果gender的typeOfGender等于“Male”,则为其指定“Male”。
NullPointerExeption
是由于字符串为null
而导致的
但是,为了便于将来参考,这里有一个带字符串的as开关大小写示例:
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;
}
我经常使用它们,没有任何问题,例如下面的例子。你会抛出它的唯一原因是如果你将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";
}
如果
typeOfGender
为null
,则抛出NPE的唯一方法是初始化typeOfGender=“”,使用枚举<代码>字符串
值不是类型安全的,很容易拼写错误。我认为它们只会在示例中这样做。我如何将其放入此对象的构造函数中?public Human(int-age,int-weight,int-height,String-name,String-typeOfGender){super();this.age=age;this.weight=weight;this.height=height;this.name=name;this.typeOfGender=typeOfGender;}因为它显示“无法解析符号”这个网站有一个很好的建设者的例子。你可以简单地把它加进去。(你粘贴的代码没有格式化,我现在无法格式化)。Oracle也有一篇关于在交换机中使用字符串的文章。关于构造函数的单独问题。请出示你的密码。在您的示例中包含足够的内容,以便我们重现您所看到的内容。