情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

Javaのraw type警告を消す方法メモ このエントリーを含むはてなブックマーク

raw type 警告

raw typeというのは、ジェネリクス型(型変数を持つ型)の<T>のような型変数部分を取り除いた型のことを言います。たとえば、「Set」は「Set<V>」のraw typeです。

そして、基本的にraw typeは、Java 5より前のバージョンとの互換性のために存在しているイメージで、利用しないことが推奨されます。なので、うかつにraw型を利用すると、次のような警告が出ますここでは、Classクラスを用いた場合です

Class is a raw type. References to generic type Class should be parametarized

日本語だと

Classはraw型です。総称型Class<T>への参照は、パラメーター化する必要があります

ここでは、Eclipseを利用していて、利用しているフレームワークなど、自分が書いたコード以外の部分に警告が表示されている状況を想定します。

Eclipseの言うとおり、アノテーションを付ける

Eclipseを使っていると、修正候補として

Add @SuppressWarnings 'rawtypes' to 'clazz'

のように表示されます。これの通りに修正すれば

Class clazz = ...

が、次のようになります。

@SuppressWarnings("rawtypes") Class clazz = ...

もしフレームワーク内にこのような修正箇所が大量にある場合、何かやる気が起こりませんし、追加する量が多いのに加えて、読むときに邪魔です。そもそもフレームワークに追記すること自体やりたくないです。

総称型にする

総称型を使わないからエラーが出るので、総称型を使えばいいわけです。ということで、シンプルには

Class

と書いてある部分を徹底的に

Class<適切な型名>

にすればいいわけです。そして、徹底的にそれをやるとどうなるかというと、

Cannot create a generic array of Class<型名>

配列でraw typeが使われていると、この方法ではまた別のエラー、そしてこちらはコンパイルできないエラーになってしまいます。

<?>で総称型にする

もっとシンプルに、<?>を問題のraw typeの後ろに付けて総称型にしてしまう手もあります。これを使うとGeneric Type配列が作成できないことを回避できるわけです。なので、配列のところだけ<?>と書いておけばいいことになります。

しかし、それでもやはりソースコードを書き換えたくない。というか、とにかく警告が邪魔なわけです。

Eclipseの警告を表示する機能を止める

警告表示自体をEclipseの設定によって抑制すればソースコードを書き換えることなく、大量の警告を止めることが出来ます。

Window>Preferences>Java>Compiler>Errors/Warnings>Generic types>Usage of a raw type」でWarningをIgnoreにすればOK。

また、設定画面の「Configure Project Specific Settings」を利用すれば、特定のProjectに対してのみこの設定を適用することも出来ます。

まとめ

Eclipseの警告を抑制する方法をメモしたかっただけです

スポンサーサイト
Eclipse | コメント:0 | トラックバック:0 | 編集

Javaジェネリクスに関する資料メモ このエントリーを含むはてなブックマーク

Javaのジェネリクスに関して調べている最中に見つけた文章の中で、メモしておきたいものをまとめました。 ものすごく怪しい説明がweb上にある中で、それなりに参考になりそうな資料に絞りました。

全体的に、「Javaのジェネリクスが何かわかるし、書き方も分かるけど、使いどころの判断が付かない」人が、いろいろ知ることで判断付けられるようにしていこうって感じ。ジェネリクスを知らないとなると読むのは大変かも。

Java | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。