2016-03-15 60 views

回答

0

你不能用原始類型,只有對象來做到這一點。

0

您可以打印包裝類型,而不是原始類型。希望這將有助於:

int i=5; 
System.out.println(((Object)i).getClass().getName()); 
-1

任何對象x,你可以打印x.getClass().getName()

+0

假設'premtive'的意思是'原始的',這無助於回答這個問題。 – bradimus

1

如果你調用像

System.out.printf("%d", 5); 

然後System.out.printf的方法實際上並沒有收到一個原始的說法:可變參數的類型爲Object[],因此在這種情況下5將被自動裝箱到Integer

但是,formatter syntax documentation中沒有列出將在字符串中輸出參數類型的標記。


你可以寫重載方法,其是專門爲每個基本類型:

String typeName(boolean _) { return "boolean"; } 
String typeName(byte _) { return "byte"; } 
String typeName(short _) { return "short"; } 
String typeName(int _) { return "int"; } 
String typeName(long _) { return "long"; } 
String typeName(float _) { return "float"; } 
String typeName(double _) { return "double"; } 
String typeName(char _) { return "char"; } 

然後,您可以調用此類似:

int a = 5; 
float f = 4.5f; 
System.out.print(typeName(a)); // outputs "int" 
System.out.print(typeName(f)); // outputs "float" 
+0

int a = 5;浮= 4.5; System.out.printf(「數據類型」); –

+0

良好的幫助 –

相關問題