如何在打印陈述中获取预备变量数据类型。 告诉告诉变量数据类型的方法吗?
答案 0 :(得分: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"
答案 1 :(得分:0)
您不能使用基本类型,只能使用对象。
答案 2 :(得分:0)
您可以打印包装类型,而不是原始类型。希望这会有所帮助:
int i=5;
System.out.println(((Object)i).getClass().getName());
答案 3 :(得分:-1)
对于任何对象x
,您可以打印x.getClass().getName()