2015-06-19 4 views
0

МетодJava: Возвращение неизвестного общего типа в методе

Filter<T,U> connect(final Filter<T,U> filter) { 
... 
return filter 
} 

в классе

class Pipe<T> 

Я получаю сообщение об ошибке «Не удается разрешить U». Идея состоит в том, чтобы просто вернуть один и тот же фильтр одним и тем же двум типам, не зная тип U. Как мне это сделать?

Цель состоит в том, чтобы быть в состоянии цепи без предоставления параметров типа, когда они не нужны, потому что они не модифицируются:

(new Pipe<Integer>).connect(new Filter<>(...)).connect(new Pipe<>)... 

Вторая труба после фильтра в приведенном выше expamle должен неявно быть общий тип Integer.

ответ

8

Похоже, вы пытаетесь сделать свой method generic. Для этого просто добавьте общий тип U к его подписи перед возвратным типом:

<U> Filter<T,U> connect(final Filter<T,U> filter) { 
    ... 
    return filter 
} 
Смежные вопросы