Наследование Java в методе с универсальными типами [решено]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Наследование Java в методе с универсальными типами [решено]

Сообщение Anonymous »

У меня есть методы:

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

public  ReturnType method1(List objects) {
for(T obj: objects) process(obj);
}

public void process(MyType_1 obj) {
doSomething(obj);
}

public void process(MyType_2 obj) {
doOther(obj);
}
где

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

class MyType_1 extends MyType;
и

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

class MyType_2 extends MyType;
Проблема заключается в том, что JVM, стирающая тип, не может вызвать процесс метода, она просто видит Object, а не MyType_1 или MyType_2 в методе 1.
Теперь я решаю проблему с помощью дополнительного метода помощи:

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

public void helpMethod(MyType obj) {
if(obj instanceof MyType_1) processMyType_1(obj);
if(obj instanceof MyType_2) processMyType_2(obj);
}
Есть ли лучший способ решить мою проблему? Кажется, использование экземпляра — не очень хорошее решение. Или нет?
Что мне делать?
Обновление: я не хочу добавлять некоторые методы в классы MyType, потому что в моем случае они являются DTO.
Ответить

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

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

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

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

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