Skip to content
Advertisement

Print the type name of object held by variable

In Java, is it possible to print the type of value held by variable?

public static void printVariableType(Object theVariable){
    //for example, if passed argument is "abc", print "String" to the console.
}

One approach to this problem would be to use an if-statement for each variable type, but that would seem redundant, so I’m wondering if there’s a better way to do this:

if(theVariable instanceof String){
    System.out.println("String");
}
if(theVariable instanceof Integer){
    System.out.println("Integer");
}
// this seems redundant and verbose. Is there a more efficient solution (e. g., using reflection?).

Advertisement

Answer

I am assuming that in case of Animal myPet = new Cat(); you want to get Cat not Animal nor myPet.

To get only name without package part use

String name = theVariable.getClass().getSimpleName(); //to get Cat

otherwise

String name = theVariable.getClass().getName(); //to get full.package.name.of.Cat
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement