Jasper コンパイラ (Tomcat を使用) で JSP をプリコンパイルし、次に Java コンパイラでプリコンパイルすると、次のような警告が表示さjavac
れます (フラグが有効になっています)。javac
-Xlint
warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
_jspx_dependants.add("/some-jsp.jspf");
さて、「ただの警告」ですが、私はクリーンビルドが好きなので、当然警告をなくしたいと思っています。確かに、-Xlint
JSP コンパイルをオフにすることもできますが、これ-Xlint
は良いことなのでそのままにします。
この警告の例では、一般的な構文が使用されていないことが問題です。の代わりにList<String>
、 しかありませんList
。Jasper を書いている善良な人々は、Java5 以前の世界に閉じ込められたままの不幸な魂に対応しなければならないことを理解しています。それは問題ありませんが、なぜこれらの警告に苦しむ必要があるのでしょうか?
Jasper JSP コンパイラーによって作成された Java ソース・コードによって引き起こされる javac 警告を除去するよく知られた方法はありますか? 私は IDE 固有のソリューションには興味がありません (ただし、特定の IDE を使用する一部の人々にとっては部分的なソリューションになります)。一般的に適用可能なソリューションを探しています。
Jasper のソース コードをスキャンしても、汎用構文の発行を引き起こす「Java 5+」スイッチは見つかりませんでした。実際、逆に私はこれを見つけました:
apache-tomcat-6.0.18-src/java/org/apache/jasper/compiler/Generator.java:494: out.printin("_jspx_dependants = new java.util.ArrayList(");
これは、ハードコードされたコードがエレガントなジェネリック構文の注入の希望を失っていることを明確に示しています。