実現したいこと(想定される結果)
[Integer型をStringに変換できません]
等のコンパイルエラーが発生する。
前提
1.該当のソースコードを、下記のコマンドでコンパイル。
javac -encoding UTF-8 Test.java
2.続けて、下記のコマンドで実行。
java Test
3.以下の出力結果となる。
1
発生している問題・エラーメッセージ
・エラーメッセージ無し。
・12行目で new Generic<Integer>(1) と、Integer型の値1を
3行目のコンストラクタに渡しています。
定義側の引数はString型なので、Integer型と String型の相互変換はできないはずですが、
なぜできるのでしょうか?
該当のソースコード
Test.java
1class Generic<String> { 2 String str; 3 public Generic(String str) { 4 this.str = str; 5 } 6 public String getString() { 7 return str; 8 } 9} 10public class Test { 11 public static void main(String[] args) { 12 Generic<Integer> g = new Generic<Integer>(1); 13 System.out.println(g.getString()); // 1 を出力 14 } 15}
試したこと
・数値(int)と文字列(String)の変換方法について調べました。Integer型をString型に変換する方法として、IntegerクラスのtoStringメソッドがありますが、特別呼び出していないので、関係なさそうです。
※現在調査中につき、また何か気づいたら、追記します。
参考サイト
https://style.potepan.com/articles/18052.html
補足情報(FW/ツールのバージョンなど)
Windows10,
openjdk version "11"
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
Visual Studio Code
ここにより詳細な情報を記載してください。