Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 如何在spring boot中为泛型类提供类类型?_Java_Spring_Generics_Spring Boot - Fatal编程技术网

Java 如何在spring boot中为泛型类提供类类型?

Java 如何在spring boot中为泛型类提供类类型?,java,spring,generics,spring-boot,Java,Spring,Generics,Spring Boot,我想创建一个小框架,并想提供一些默认类,当用户不提供实现类时,应该加载这些类 这种结构应类似于弹簧靴 问题:我想创建的许多类都应该是泛型的,只需要用户定义类类型 无论如何,这迫使用户显式地实现这些类中的每一个,并提供类类型 我有什么办法可以解释一下吗?用户如何提供应该在泛型上使用的类类型,而不必显式实现泛型类?可能吗 框架: @Configuration public class AppConfig { @Bean @ConditionalOnMissingBean p

我想创建一个小框架,并想提供一些默认类,当用户不提供实现类时,应该加载这些类

这种结构应类似于
弹簧靴

问题:我想创建的许多类都应该是泛型的,只需要用户定义类类型

无论如何,这迫使用户显式地实现这些类中的每一个,并提供类类型

我有什么办法可以解释一下吗?用户如何提供应该在泛型上使用的类类型,而不必显式实现泛型类?可能吗

框架:

@Configuration
public class AppConfig {

    @Bean
    @ConditionalOnMissingBean
    public BaseValidator<T extends MyReq> defaultValidator() {
        return new BaseValidator<T extends MyReq>();
    }
}
//我希望防止用户必须实现每个泛型类,如下所示:

@Component
public class MyValidator extends BaseValidator<CustomReq> {

}
@组件
公共类MyValidator扩展了BaseValidator{
}

用户是否可能只提供了
CustomReq.class
,并且
BaseValidator
会自动实例化所提供的类类型?

您可以使用
class
构造函数参数来克服它,如下所示:

public class BeanPropertyRowMapper<T> implements RowMapper<T> {

     private Class<T> mappedClass;

     public BeanPropertyRowMapper(Class<T> mappedClass) {
        initialize(mappedClass);
    }

}
公共类BeanPropertyRowMapper实现行映射器{
私有类mappedClass;
公共BeanPropertyRowMapper(类mappedClass){
初始化(mappedClass);
}
}
public class BeanPropertyRowMapper<T> implements RowMapper<T> {

     private Class<T> mappedClass;

     public BeanPropertyRowMapper(Class<T> mappedClass) {
        initialize(mappedClass);
    }

}