我正在读取一个csv文件并从每行的字段创建一个Person对象,一行代表一个人.正在读入的字符串放在一个数组中,然后将数组元素指定为属性.
通过在这段代码之前和之后放置print语句,我发现'smoker'属性被设置为false,而不管数组元素的'true'或'false'字符串值.
if(person_array[7] == "true") {this.smoker = true;}
else {this.smoker = false;}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
谢谢
伊恩
不要对对象做'==',请使用.equals().也做不到if (...) boolvar = true; else boolvar = false;
this.smoker = person_array[7].equals("true");
Run Code Online (Sandbox Code Playgroud)
或者@Adi和@Peter指出
this.smoker = Boolean.parseBoolean(person_array[7]);
Run Code Online (Sandbox Code Playgroud)
Paul Tomblin的答案应该可以解决你的问题.考虑用以下代码替换代码,
this.smoker=Boolean.parseBoolean(person_array[7]);
Run Code Online (Sandbox Code Playgroud)