1

Class.class をパラメータとして必要とする関数を書きたい

例:

class MyObject{


  public whatTypeGoesHer MyFunction(something1, something2){
//do something with parameters
}

}

class MyObject1{
      MyObject object = new MyObject();

       MyObject1 object2 = object.MyFunction(MyObject1.class,something else);

}

このタイプの呼び出しを達成したいのですが、このタイプのパラメーターを受け入れるように「MyFunction」を定義するにはどうすればよいですか?

「whatTypeGoesHere」の代わりに何が必要ですか?

編集:

質問を言い換えさせてください

  1. GSONを使用してJSONからクラスをデシリアライズしたいのですが、デシリアライズしたいすべてのクラスでまったく同じメソッドをクラス名の違いで書いていることに気づきました

これは私のコードです:

public static User fromJSON(String json, Class<?> className) {
    GsonBuilder builder = new GsonBuilder();
    builder.serializeNulls();
    User g1 = builder.create();
    User user = g1.fromJson(json, className.getClass());
    return user;
}

および使用されたクラスでの呼び出し

User user =   User.fromJSON(json,User.class);

「fromJSON」メソッドをいくつかのutilsクラスに配置したいのは、すべてのクラスでまったく同じであり、返されるクラス名が異なるためです

それ、どうやったら出来るの?

4

2 に答える 2

10

タイプのパラメータが必要ですClass<?>:

public void myFunction(Class<?> something1, SomeOtherType something2)

Reflection チュートリアルを実行する必要があります

于 2013-08-01T13:44:37.747 に答える
2

次のような意味ですか。

  public <T> void MyFunction(Class<T> something1, SomeOtherType  something2){
  // T= type parameter inside method
  }
于 2013-08-01T13:55:41.220 に答える