1

無駄なクラスを削除してプロジェクトを簡素化したい。役に立たないクラスとは、次のような意味です。

public class MainPage extends TileGridFragment<MainModel> {}

このクラスのロジック全体は によって実装されTileGridFragment、データは によって提供されMainModelます。このインスタンスは、シングルトン クラスのおかげでアクセスされます。

そのようなクラスのインスタンス化を後で延期したいので、単純MainPage.classにメソッドに渡します。

MainPage同等であるためTileGridFragment<MainModel>、このクラスを削除し、代わりに次のようなものを使用したいと思いTileGridFragment<MainModel>.classます。

しかし、これは機能せず、私は考えていません。

私も試しましClass.forNameたが、そのスローはClassNotFoundException.

何か案が ?

4

2 に答える 2

1

の実装MainPageが実際{}に である場合は、そのまま渡しTileGridFragment.classます。実際の型パラメータは、 erasureによって削除されるため、実行時には無関係です。

また、消去のために、 newTileGridFragmentを ( の結果として生の型でTitleGridFragment.class.newInstance()) にキャストすることができTitleGridFragment<MainModel>、付随的な損害はありません (コンパイラーからの小さな警告を除いて、それは抑制できます)。

于 2013-03-15T16:37:33.130 に答える
0

あなたは本当にできません。内省からいくらかの喜びを得るかもしれませんが、あなたが何をしようとしているのか正確にはわかりません.

ここで試してください: 実行時にクラスのジェネリック型を取得する

于 2013-03-15T09:53:00.890 に答える