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

2022-08-31 19:51:49

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

当数据打印到控制台时,数据看起来像字符串(例如,它是一行文本,如或),但我的代码出错并出现各种错误,这表明我要转换为String的代码不起作用。Johnson, JohnChicago Regionindex out of range

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


答案 1

给定任何对象的实例,可以调用它的 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

打印基元变量的类型有点复杂:有关详细信息,请参阅此 SO 问题


答案 2

对于任何对象,您都可以打印 。xx.getClass()