有没有办法将java数据类型输出到控制台?

时间:2012-05-03 19:56:30

标签: java types casting

我正在尝试调试我继承的程序。这个程序包含字符串,数组列表和集合,类型之间的大量转换,我需要做一些字符串操作(substring等)。

数据在打印到控制台时就像字符串一样(例如,它是一行文本,如Johnson, JohnChicago Region),但我的代码错误了各种index out of range错误,表明我的代码转换为String无效。

我想试着找出正在进入的数据类型,并让我的方法验证程序是否按预期运行。有没有办法在Java中找到字段类型?在一个完美的世界中,我可以在每一步生成控制台输出,它会给我数据值,无论是字符串,数组列表还是集合。可以这样做吗?

5 个答案:

答案 0 :(得分:48)

给定任何对象的实例,可以调用它的getClass()方法来获取描述对象类型的Class对象的实例。

使用Class对象,您可以轻松打印它的类型名称:

Integer number=Integer.valueOf(15);
System.out.println(number.getClass().getName());

此打印用于控制类的完全限定名称,例如:

java.lang.Integer

如果您想要更简洁的输出,可以改为使用:

Integer number=Integer.valueOf(15);
System.out.println(number.getClass().getSimpleName());

getSimpleName()仅为您提供类的名称:

Integer

打印原始变量的类型有点复杂:有关详细信息,请参阅this SO question

答案 1 :(得分:6)

对于任何对象x,您可以打印x.getClass()

答案 2 :(得分:0)

只需在任何对象中执行.class.getName();

答案 3 :(得分:0)

如果您只想打印类型,

instance.getClass()就是您的选择。如果要根据类型(例如

)分支行为,也可以使用instanceof
if ( x instanceof String )
{
   // handle string
}

答案 4 :(得分:0)

使用getClass()方法。

Object o;
System.out.println(o.getClass());