2016-10-17 7 views
-1

getとsetメソッドを使用して温度を変換する必要がある割り当てに取り組んでいます。しかし、私がsetMethodを書くとき、Uに "charは参照解除できません"というエラーが出ます。ここに私のコードです。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; 
    } 
} 
+4

'char'sはプリミティブです。プリミティブにはメソッドがありません。 – tkausl

答えて

3

プリミティブ(charなど)にはメソッドがありません。しかし、単純な平等テストを探しているようです。

編集:
エリオットフリッシュはコメントで述べたように、あなたはtemp引数が、それを隠しているようにデータメンバを参照するためにthis.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

おそらく 'this.temp =' ...であるべきですが、それはOPの質問ではありませんでした。 –

+0

良い点@ElliottFrisch、私は私の答えにそれを編集しました。 – Mureinik

2

プリミティブでメソッドを呼び出すことはできません。charはプリミティブです。

ように使用

if (scale == 'K') 

や文字を比較します。

関連する問題