簡體   English   中英

Java反思:如何獲取方法的泛型類型的類?

[英]Java reflection: how to get the class of a method's generic type?

我正在嘗試編寫一個通用方法,只要將Type作為輸入即可訪問相應的類。 請注意,沒有參數傳遞給方法(如已經回答了在這里 ),但僅指定類型。

這是相應的代碼:

@Bean
public <T> ConsumerFactory <String, T> consumerFactory() {
 Class <T> genericClass = null; //How to get the class corresponding to type T ? 

 return new DefaultKafkaConsumerFactory<>(consumerConfigs(),
  new StringDeserializer(),
  new JsonDeserializer<>(genericClass, objectMapper)
 );
}

您可能應該引入類型標記作為方法參數。 您將無法獲得T信息,因為它會在編譯過程中被刪除。

@Bean
public ConsumerFactory<String, String> newStringConsumerFactory() {
  return newConsumerFactory(String.class);
}

private <T> ConsumerFactory <String, T> newConsumerFactory(Class<T> t) {
 return new DefaultKafkaConsumerFactory<>(consumerConfigs(),
  new StringDeserializer(),
  new JsonDeserializer<>(t, objectMapper)
 );
}

您可以嘗試深入了解反射和Method.getGenericParameterTypes()但不會使@Configuration可讀。 詳細信息和遵守標准非常重要,因為大多數IDE都支持Spring配置和自動裝配提示

暫無
暫無

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

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