Genericsを含むコードをJava1.4環境向けにコンパイルする。

Javaの理論と実践: Java 5 の言語機能を以前の JDK で使う
Generics等のJava5からの新機能を含むソースコードをコンパイルする際に、javacの-targetオプションに"jsr14"を指定すると、Java1.4環境でも実行可能なバイトコードを生成してくれるそうです。上記サイトにあるとおり、Genericsはもともとバイトコードには影響しないので問題ないですが、Enumを参照しようとするとNoClassDefFoundErrorになるなど全ての機能がサポートされるわけではないので注意が必要です。

mavenだったらpom.xmlにてmaven-compiler-pluginの設定を行います。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.5</source>
    <target>jsr14</target>
  </configuration>
</plugin>