105 votes

Comment passer un type en tant que paramètre de méthode en Java

En Java, comment pouvez-vous passer un type en tant que paramètre (ou le déclarer en tant que variable)?

Je ne veux pas passer une instance du type mais le type lui-même (par exemple int, String, etc).

En C#, je peux faire ceci:

private void foo(Type t)
{
    if (t == typeof(String)) { ... }
    else if (t == typeof(int)) { ... }
}

private void bar()
{
    foo(typeof(String));
}

Y a-t-il un moyen en Java de le faire sans passer une instance du type t?
Ou dois-je utiliser mes propres constantes int ou enum?
Ou y a-t-il un meilleur moyen?

Modifier : Voici l'exigence pour foo:
En fonction du type t, il génère une chaîne courte, xml différente.
Le code dans le if/else sera très petit (une ou deux lignes) et utilisera quelques variables de classe privées.

0voto

ghallio Points 58

Vous pouvez passer une instance de java.lang.Class qui représente le type, c'est-à-dire.

private void foo(Class cls)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X