私は狂っています! Character
コンストラクタはe char
引数を受け取るはずですか?キャラクターがゼロ引数コンストラクタを必要としています
私はこれをコンパイルしようとすると、なぜ、それは私にコンパイルエラーを与える:
public class TestClass {
public static void main(String[] args) {
char c = 'a';
Character cObj = new Character(c);
}
}
エラーは次のとおりです。
TestClass.java:5: error: constructor Character in class Character cannot be applied to given types;
Character cObj = new Character(c);
^
required: no arguments
found: char
reason: actual and formal argument lists differ in length
1 error
また、私はこれをコンパイルしようとした場合:
public class TestClass {
public static void main(String[] args) {
char c = 'a';
Character cObj = Character.valueOf(c);
}
}
入手方法:
TestClass.java:5: error: cannot find symbol
Character cObj = Character.valueOf(c);
^
symbol: method valueOf(char)
location: class Character
1 error
これは、最新のOracle Javaバージョン "1.8.0_144"を使用しているMacOS Sierra 10.12.6で発生しています。
OpenJDk 8を使ってLinux上で同じコードをコンパイルしようとすると、すべてがコンパイルされます。
私には何が欠けていますか?
私は、あなたが(誤って) 'java.lang.Character'を使用していないと思っていますが、自分で書いた別の' Character'クラスです。あなたが書いたコードは、それ自身でうまく動作します。 (確かに自動ボクシングを使うほうが簡単です: 'Character cObj = 'a';') –
これは私の推測ですが、私はCaracterクラスo_Oを書いていません。また、自動ボクシングもコンパイルされません。 – k3rn31
クラスパスのどこかで 'Character.class'というファイルを探すことをお勧めします。 autoboxingのためにコンパイルエラーを表示します。 (私は 'Integer'などで似たようなことをしようとしています) –