在Java中,是否可以打印变量的类型?
public static void printVariableType(Object theVariable){
//print the type of the variable that is passed as a parameter
//for example, if the variable is a string, print "String" to the console.
}
解决这个问题的一种方法是对每个变量类型使用if语句,但这似乎是多余的,所以我想知道是否有更好的方法来执行此操作:
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?).
答案 0 :(得分:12)
根据您的示例,您似乎希望获得由变量保持的值类型,而不是声明的变量类型。所以我假设在Animal animal = new Cat("Tom");
的情况下你想要Cat
而不是Animal
。
仅获取没有包装部件的名称
String name = theVariable.getClass().getSimpleName() //to get Cat
,否则
String name = theVariable.getClass().getName(); //to get your.package.Cat
答案 1 :(得分:5)
System.out.println(theVariable.getClass());
阅读the javadoc。
答案 2 :(得分:5)
您可以使用".getClass()"
方法。
System.out.println(variable.getClass());
答案 3 :(得分:4)
答案 4 :(得分:3)
public static void printVariableType(Object theVariable){
System.out.println(theVariable.getClass())
}
答案 5 :(得分:3)
你可以在课堂上阅读,然后得到它的名字。
Class objClass = obj.getClass();
System.out.println("Type: " + objClass.getName());
答案 6 :(得分:0)
public static void printVariableType(Object theVariable){
System.out.println(theVariable);
System.out.println(theVariable.getClass());
System.out.println(theVariable.getClass().getName());}
ex- printVariableType("Stackoverflow");
o/p: class java.lang.String // var.getClass()
java.lang.String // var.getClass().getName()