0

以下は正常に動作しています:

ResultSetHandler<List<MyClass>> h = new BeanListHandler<MyClass>(MyClass.class);

問題は、MyClassハードコードされていることです。上記の行は集中化された場所にあるため、ハードコーディングは不適切です。

MyClass私はieの完全修飾クラス名を持っていますcom.company.vo.MyClass

ResultSetHandlerここで、受信文字列を実際のクラスに変換して上記を生成したいと思います。

助けてください、私は試しました:

Class<?> classObj = Class.forName("com.company.vo.MyClass");
ResultSetHandler<List<classObj>> h = new BeanListHandler<classObj>(classObj.class);

スローするもの:

classObj cannot be resolved to a type

読んでくれてありがとう。

4

1 に答える 1

0

ハードコーディングされた型は悪くありません。それらはジェネリックの本質です。ジェネリクスの目的は、より優れた型チェックを提供することcompile timeです。ResultSetHandler異なる型のリストで使用する場合は、これらの型の共通の基本クラスまたはインターフェイスを使用することを検討してください。

于 2015-03-13T13:36:06.780 に答える