2016-12-28 8 views
0

私はAbsEntityクラスを拡張するクラスのセットを持っています。クラスオブジェクトを返すべき抽象メソッドを持っています。そのクラスオブジェクトは、AbsEntityタイプを継承します...ここで私はどのように試みていますか? Eである私は実際に私がいけないエラーを宣言するためにHWを知ってジェネリッククラスを返すメソッドを宣言するにはどうすればいいですか?

abstract Class<E externds AbsEntity> E getAbsEntity(); 

この宣言を宣言するために...戻り値の型玉葉方法があるべきクラス型はAbsEntity Plzを、それが宣言されなければならない

+0

例使用してJavaのジェネリックをhttp://stackoverflow.com/documentation/java/92/generics/5954/決定-間-T-スーパーT-と拡張し-T#T = 2016122805233370177 – ravthiru

+0

http://stackoverflow.com/questions/450807/how-do-i-make-the-method-return-type-generic –

+1

私は静的な E getAbsEntity(Class cls) 'や' cl s.newInstance() 'はインスタンスを返します。 –

答えて

0

役立つ拡張します戻り値の型の前には、次のようになります。

abstract <E extends AbsEntity> Class<E> getAbsEntity(); 

は、Oracleのドキュメントを見てhereしてください。

希望すると便利です。このような

1

何か:

public <E extends AbsEntity> E yourMethod() { 
    //yourObject 
    return yourObject; 
} 
0

あなたは以下のコードを使用することができます

static <E> E yourMethod(){ 
    AbsEntity absEntity = new AbsEntity(); 
    return (E)absEntity; 
} 
関連する問題