如何在java中查找前置变量的数据类型

时间:2016-03-15 11:57:41

标签: java

如何在打印陈述中获取预备变量数据类型。 告诉告诉变量数据类型的方法吗?

4 个答案:

答案 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()