用Java编写通用代码

时间:2016-07-27 15:31:02

标签: java spring generics autowired generic-programming

我有以下类结构:

public class MyClass {}
public class AnotherClass {}
public class YetAnotherClass {}

@Component
public class MyFieldSetMapper extends BeanWrapperFieldSetMapper<MyClass>{
    public MyFieldSetMapper() {
        setTargetType(MyClass.class);
    }
}

我需要在另一个类中自动装配该类,这里的问题是我必须自动装载很多MyFieldSetMapper类型,即

@Component
public class AnotherFieldSetMapper extends BeanWrapperFieldSetMapper<AnotherClass>{
    public AnotherFieldSetMapper() {
        setTargetType(AnotherClass.class);
    }
}

对于另一个FieldSetMapperClass,我必须指出:

@Component
public class YetAnotherFieldSetMapper extends BeanWrapperFieldSetMapper<YetAnotherClass>{
    public AnotherFieldSetMapper1() {
        setTargetType(YetAnotherClass.class);
    }
}

我每次需要新的mapper时都会复制很多编写新的字段集映射器的代码而我讨厌它。有人可以建议我一个更聪明/更好的代码吗?

1 个答案:

答案 0 :(得分:-5)

我不懂“autowire”的意思。 但既然你说你想写泛型类 - 那就做:

public class MyClass<T, U>{
    T foo;
    U bar;
}

好吧,我想我不会解决你的问题而且这个答案不会有太多帮助。