Saya ingin memperluas jawaban Martin di sana ...
Solusinya agak bagus, tetapi bisa di-tweak sehingga "tipe variabel" apa pun dapat dicetak seperti itu. (Ini sebenarnya Value Type, lebih pada topik ). Yang mengatakan, "tweak" mungkin merupakan kata yang kuat untuk ini. Apapun itu, mungkin bermanfaat.
Solusi Martins:
a.getClass().getName()
Namun, Jika Anda ingin bekerja dengan apa pun, Anda dapat melakukan ini:
((Object) myVar).getClass().getName()
//OR
((Object) myInt).getClass().getSimpleName()
Dalam hal ini, primitif hanya akan dibungkus dengan Wrapper. Anda akan mendapatkan Objek primitif dalam kasus itu.
Saya sendiri menggunakannya seperti ini:
private static String nameOf(Object o) {
return o.getClass().getSimpleName();
}
Menggunakan Generik:
public static <T> String nameOf(T o) {
return o.getClass().getSimpleName();
}