eclipseコンパイラやjavacのバグ(「Tの型パラメータが決定できない」)。
2023-10-27 03:02:25
質問
次のコード
public class GenericsTest2 {
public static void main(String[] args) throws Exception {
Integer i = readObject(args[0]);
System.out.println(i);
}
public static <T> T readObject(String file) throws Exception {
return readObject(new ObjectInputStream(new FileInputStream(file)));
// closing the stream in finally removed to get a small example
}
@SuppressWarnings("unchecked")
public static <T> T readObject(ObjectInputStream stream) throws Exception {
return (T)stream.readObject();
}
}
はeclipseではコンパイルできますが、javacではコンパイルできません(Tの型パラメータが決定できない。上界T,java.lang.Objectを持つ型変数Tに対して一意の最大インスタンスが存在しない)。
readObject(文字列ファイル)を
@SuppressWarnings("unchecked")
public static <T> T readObject(String file) throws Exception {
return (T)readObject(new ObjectInputStream(new FileInputStream(file)));
}
を実行すると、eclipseでもjavacでもコンパイルされます。eclipseのコンパイラとjavacのどちらが正しいのでしょうか?
どのように解決するのですか?
Sunのコンパイラのバグが原因だと思います。 ここで と はこちら というのは、あなたの行を以下の行に変更すると、両方で動作するからで、これはまさにバグレポートに記述されていることだと思われます。
return GenericsTest2.<T>readObject(new ObjectInputStream(new FileInputStream(file)));
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
強制型変換について
-
ジャバアレイ
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
java 365*1000*60*60*24 計算問題
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。