2013-03-22 2 views
1

Это официально делает мою голову!Java Generics - подкласс T in; тот же подкласс T out

Что я хочу сделать, это передать тип в метод и получить тот же тип обратно. Именно это:

public <T> T get(T in) { 
    return in; 
} 

Только я хочу T быть подкласс абстрактного базового класса, а не просто любой старый класс. Что-то вроде этого:

public <T extends BaseClass> T get(<T extends BaseClass> in) { 
    return in; 
} 

Но, как мы все знаем; это не совсем так.

+0

Почему это не работает? –

+0

@TimBender почему бы вам не попробовать? –

+0

я сделал. Помимо чрезмерного мышления это работает. Я как бы указывал на формулировку вопроса. –

ответ

4

Не пробовал, но разве эта работа не работает?

public <T extends BaseClass> T get(T in) { 
    return in; 
} 
+0

Это действительно работает. –

+0

Я скопировал синтаксис выше, и это действительно так просто! Спасибо @armandino, мне было 2 часа без плана выхода! Вы знаете, как прошло несколько дней. – Kong

+0

NP. Рад, что это помогло! – armandino

Смежные вопросы