Generics&javacでコンパイルエラー

こんなコードを書いてみる。


public class Test {
public E method1() {
Object o = new Object();
return (E) o;
}

public E method2() {
E obj = method1();
return obj;
}
}
で、これがEclipseコンパイラだと通るけど、
javacだとコンパイルエラーになる。
コンパイルエラーの内容はこんな感じ。

Test.java:8: 型パラメータ E を判別できません; 型変数 E (上限 E,java.lang.Object) の固有の最大インスタンスが存在しません。
E obj = method1();
^
正直、エラーのメッセージの意味がまったくわからん。
うーん、、、




ちょっと探してみたけど、これと同じことなのかなぁ。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=98379
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6302954
一応、javacのバグってことになっているみたい。
でも、Closed, fixed となってるけど、最新版でもまだ通らない。


下記のようにすればコンパイルが通るようになるけど、
これじゃGenericsの意味がないような。


E obj = (E) method1();