我正在进行一项需要使用get和set方法转换温度的赋值。但是,当我尝试编写setMethod时,U得到一个错误,称“char不能被解除引用”。这是我的代码;
public void setTemp(double temp, char scale){
// - sets the objects temperature to that specified using the
// specified scale ('K', 'C' or 'F')
if (scale.isLetter("K")){
temp = temp + 273;
}else if (scale.isLetter("C")){
temp = temp;
}else if (scale.isLetter("F")){
temp = ((9 * temp) / 5 ) + 32;
}
}
答案 0 :(得分:3)
原语(例如char
)没有方法。但是,您似乎只是在寻找一个简单的平等测试。
编辑:
正如Elliott Frisch在评论中指出的那样,您需要使用this.temp
来引用您的数据成员,因为temp
参数隐藏了它:
public void setTemp(double temp, char scale){
// - sets the objects temperature to that specified using the
// specified scale ('K', 'C' or 'F')
if (scale == 'K'){
this.temp = temp + 273;
} else if (scale == 'C') {
this.temp = temp;
} else if (scale == 'F') {
this.temp = ((9 * temp) / 5 ) + 32;
}
}
答案 1 :(得分:2)
你不能在基元上调用方法,而char是原始的!
使用
if (scale == 'K')
等比较字符。