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?
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?
Une meilleure conception est.
interface Generic<T> {
void foo(T t);
}
class Impl implements Generic<MyType> {
@Override
public void foo(MyType t) { }
}
interface Base {
public <T> void foo(T t);
}
class Derived implements Base {
public <T> void foo(T t){
}
}
Pensez-vous que ceci est lié ici? – VinayVeluri
C'est une réponse. Pensez-vous que c'est faux? – talex
Probablement, il veut avoir une implémentation spécifique dans la méthode overriden. –
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
Comprenez-vous que 'MyType' est un nom de paramètre générique, pas un nom de classe existante? – talex
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