2014-09-04 4 views
0

méthode générique:Comment remplacer une méthode générique

public <T> void foo(T t); 

méthode surchargée souhaitée:

public void foo(MyType t); 

Quelle est la syntaxe java pour y parvenir?

+0

Est-ce que T est contraint par la classe? Comme dans, la méthode est-elle incluse dans une classe générique? Exemple {} ' – Upio

Répondre

2

Une meilleure conception est.

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

Pensez-vous que ceci est lié ici? – VinayVeluri

+0

C'est une réponse. Pensez-vous que c'est faux? – talex

+0

Probablement, il veut avoir une implémentation spécifique dans la méthode overriden. –

2

Vous voudrez peut-être faire quelque chose comme ceci:

abstract class Parent { 

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

} 

public class Implementor extends Parent { 

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

    } 
} 

Une question similaire a été répondu ici aussi: Java generic method inheritance and override rules

+0

Comprenez-vous que 'MyType' est un nom de paramètre générique, pas un nom de classe existante? – talex

Questions connexes