- 締切済み
「Class<?>」てなんですか???
あるサンプルソースで、 public Class<?> getColumnClass (int column) {return getValueAt (0, column) .getClass () ;} } ; というクラスがでてきました。 Classの後の「<?>」が何なのか気になります。 あっても無くてもプログラムの実行には問題ないようなのですが、 これは、一体何のためにあるのでしょうか? ご存知の方教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hatimiti
- ベストアンサー率68% (26/38)
回答No.1
これはジェネリクスの機能の1つです。 通常、ジェネリクスは型を限定するのですが、 実行するまで型が分からない場合などに「?」を指定します。 何でもありという意味では、<Object> と似ていますが、以下の例などで変わってきます。 List<?> x = new ArrayList<Object>(); x.add(1); // コンパイルエラー List<Object> y = new ArrayList<Object>(); y.add(1); インスタンスはどちらも ArrayList<Object> だが、<?>の場合は add 時にコンパイルエラーとなります。 参考URL: http://www.ne.jp/asahi/hishidama/home/tech/java/generics.html#h_diff_CextendsC