2014-09-04 3 views
0

Generic метод:Как переопределить общий метод

public <T> void foo(T t); 

Желаемая переопределяется метод:

public void foo(MyType t); 

Что такое синтаксис Java для достижения этой цели?

+0

Является ли T ограничен классом? Как и в, метод, заключенный в какой-то общий «класс» Пример {} ' – Upio

ответ

2

Лучший дизайн.

interface Generic<T> { 
    void foo(T t); 
} 

class Impl implements Generic<MyType> { 
    @Override 
    public void foo(MyType t) { } 
} 
0
interface Base { 
    public <T> void foo(T t); 
} 

class Derived implements Base { 
    public <T> void foo(T t){ 

    } 
} 
+0

Как вы думаете, это связано здесь? – VinayVeluri

+0

Это ответ. Вы считаете, что это неправильно? – talex

+0

Вероятно, он хочет иметь конкретную реализацию в методе overriden. –

2

Вы можете захотеть сделать что-то вроде этого:

abstract class Parent { 

    public abstract <T extends Object> void foo(T t); 

} 

public class Implementor extends Parent { 

    @Override 
    public <MyType> void foo(MyType t) { 

    } 
} 

Аналогичный вопрос был дан ответ и здесь: Java generic method inheritance and override rules

+0

Вы понимаете, что 'MyType' здесь является общим именем параметра, а не именем существующего класса? – talex

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