Il est possible de faire ce que vous voulez en utilisant la syntaxe de méthodes génériques lors de la déclaration de votre doIt()
méthode (remarquer l'ajout de la <T>
entre static
et void
à la signature de la méthode de doIt()
):
class Clazz<T> {
static <T> void doIt(T object) {
// shake that booty
}
}
J'ai eu l'Éclipse de l'éditeur pour accepter le code ci-dessus sans l' Cannot make a static reference to the non-static type T
d'erreur, puis étendu à la suite de son programme de travail (avec un peu appropriés à l'âge de référence culturelle):
public class Clazz<T> {
static <T> void doIt(T object) {
System.out.println("shake that booty '" + object.getClass().toString()
+ "' !!!");
}
private static class KC {
}
private static class SunshineBand {
}
public static void main(String args[]) {
KC kc = new KC();
SunshineBand sunshineBand = new SunshineBand();
Clazz.doIt(kc);
Clazz.doIt(sunshineBand);
}
}
Qui imprime ces lignes dans la console quand je le lance:
shake that booty " class com.eclipseoptions.datamanager.Clazz$KC' !!!
shake that booty " class com.eclipseoptions.datamanager.Clazz$SunshineBand' !!!