2013-04-02 6 views
1

В Java можно ли печатать тип переменной?Печать типа переменной 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(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

Этот вопрос имеет обманчиво аналогичное название для этого, но, как представляется, в основном, не имеет значения: HTTP: // stackoverflow.com/questions/6614066/how-can-i-print-out-the-type-size-and-range-of-a-java-data-type-esp-those-wti –

ответ

6

Чтобы получить только имя без пакета части использования

String name = theVariable.getClass().getSimpleName() 

иначе

String name = theVariable.getClass().getName(); 
2
public static void printVariableType(Object theVariable){ 
    System.out.println(theVariable.getClass()) 
} 
4

Вы можете использовать метод ".getClass()".

System.out.println(variable.getClass()); 
2

Вы можете прочитать в своем классе, а затем получить его имя.

Class objClass = obj.getClass(); 
System.out.println("Type: " + objClass.getName()); 
3
variable.getClass().getName(); 

Object#getClass()

Возвращает класс выполнения этого объекта. Возвращаемый объект класса - объект, который заблокирован статическими синхронизированными методами класса .

Смежные вопросы