Тип класса Inject в конструкторе компонентов SpringJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Тип класса Inject в конструкторе компонентов Spring

Сообщение Anonymous »

По причине универсальности у меня есть некоторые компоненты, которые имеют следующее тело:

Код: Выделить всё

@Component
public class MyClass extends SomeAbstractClass {

public MyClass(SomeClass1 someClass1, SomeClass2 someClass2) {
super(superMethod(A.class, C.class));
}
}
— это всего лишь общий скелет моих классов, они могут иметь или не иметь какой-либо объект в конструкторе (представленный SomeClass1 и SomeClass2). Абстрактный суперкласс принимает два класса, здесь A явно указан, он не является универсальным, поэтому A.class допустим. Но C.class недействителен, поскольку это универсальный класс.
Поэтому я попробовал это:

Код: Выделить всё

@Component
public class MyClass extends SomeAbstractClass {

public MyClass(SomeClass1 someClass1, SomeClass2 someClass2, Class clazz) {
super(superMethod(A.class, clazz));
}
}
Этот код компилируется, но Spring не может внедрить Class clazz, как мне это сделать?
Изменить:
Я тоже пробовал кое-что, что работает, но мне это не очень нравится. Я создаю класс для каждого универсального типа:

Код: Выделить всё

@Component
public class MyClassWithoutGeneric extends SomeAbstractClass {

public MyClassWithoutGeneric(SomeClass1 someClass1, SomeClass2 someClass2) {
super(superMethod(A.class, B.class));
}
}
Что мне не нравится в этом решении, так это то, что оно не очень универсально и не очень удобно в обслуживании.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/790 ... onstructor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»