簡體   English   中英

在Java中編寫需要Class.class作為參數的函數

[英]writing a function that needs Class.class as a parameter in java

我想編寫一個需要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類中,因為在每個類中它都是完全一樣的,只是返回的類名不同

我怎么做?

您需要一個Class<?>類型的參數:

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

您應該閱讀反射教程

您的意思是這樣的嗎:

  public <T> void MyFunction(Class<T> something1, SomeOtherType  something2){
  // T= type parameter inside method
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM