Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java反射:如何获取方法的类';什么是泛型?_Java_Reflection - Fatal编程技术网

Java反射:如何获取方法的类';什么是泛型?

Java反射:如何获取方法的类';什么是泛型?,java,reflection,Java,Reflection,我正在尝试编写一个通用方法,它只提供类型,因为输入可以访问相应的类。 请注意,没有向方法传递任何参数(如已回答的),只指定了类型 以下是相应的代码: @Bean public <T> ConsumerFactory <String, T> consumerFactory() { Class <T> genericClass = null; //How to get the class corresponding to type T ? return n

我正在尝试编写一个通用方法,它只提供
类型
,因为输入可以访问相应的类。 请注意,没有向方法传递任何参数(如已回答的),只指定了类型

以下是相应的代码:

@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)
 );
}
@Bean
公共消费者工厂消费者工厂(){
Class genericClass=null;//如何获取T类型对应的类?
返回新的DefaultKafkanConsumerFactory(consumerConfigs(),
新建StringDeserializer(),
新的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)
 );
}
@Bean
公共消费者工厂新闻字符串消费工厂(){
返回newConsumerFactory(String.class);
}
私人消费工厂新消费工厂(t类){
返回新的DefaultKafkanConsumerFactory(consumerConfigs(),
新建StringDeserializer(),
新的JsonDeserializer(t,objectMapper)
);
}
您可以尝试深入研究反射,但它无法使
@配置
可读。这里的冗长和遵守标准很重要,因为大多数IDE都支持Spring配置和自动连线提示