2016-07-27 6 views
1

У меня есть ниже класс структуры:Написание Generic кода в Java

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

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

и мне нужно autowire класса в другом классе, проблема здесь в том, что я должен autowire много типов 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); 
    } 
} 

и я duplica ting много кода, написание нового набора карт полей каждый раз, когда мне нужен новый картограф, и я ненавижу его. Может ли кто-нибудь предложить мне гораздо более умный/лучший код?

ответ

-5

Я не понимаю, что вы имеете в виду под «autowire». Но так как вы говорите, что вы хотите написать общие классы - это сделать:

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

Ну, я думаю, что я не получаю вашу проблему и этот ответ не поможет много.

+0

Он спрашивает о механизме DI, а «autowiring» - это средство, которое использует весна для DI, подобно @inject. Подробнее здесь: http://stackoverflow.com/questions/4997836/benefit-of-autowired-annotation-in-java –

+1

* Ну, я думаю, что у меня нет вашей проблемы, и этот ответ не поможет много. * Довольно точная оценка , лол. – shmosel