0

JPAには、次のシグネチャのメソッドがあります。

<T> CriteriaQuery<T> createQuery(Class<T> resultClass);

resultClass型自体が型パラメーター化されている場合、このメソッドを呼び出すにはどうすればよいですか?

例えば:

public class ResultDto<T> {
...
}

次のことを試しましたが、うまくいきませんでした:

createQuery(ResultDto<String>.class);
4

2 に答える 2

0

ジェネリック型 ( 、、など)Classの特定のインスタンス化のインスタンスはありません。ResultDto<String>ResultDto<Integer>ResultDto<MyObject>

クラスがジェネリックであるかどうかに関係なくClass、クラスの生のバージョンを表すインスタンスは常に 1 つだけです。あなたの場合、それはResultDto.classです。

于 2013-07-01T19:03:29.767 に答える
0

使用できますcreateQuery(ResultDto.class)

その理由は、 ResultDto のオブジェクトを作成するときは、常に型パラメーターを使用して作成するためです。たとえば ResultDTo<String> rs = new ResultDTo<String>() 、この型パラメーターは<T> CriteriaQuery<T> createQuery(Class<T> resultClass);

于 2013-07-01T19:11:57.063 に答える