一尘不染

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

java

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

数据打印到控制台时 看起来 像字符串(例如,一行文本,如Johnson, JohnChicago Region),但是我的代码因各种index out of range错误而出错,这表明我强制转换为String的代码无法正常工作。

我想尝试弄清楚传入的数据类型,并留下我的方法来验证程序是否按预期运行。有什么办法可以找到Java中的字段类型?在一个理想的世界中,我可以在每个步骤生成控制台输出,该输出将为我提供数据值以及它是字符串,数组列表还是集合。能做到吗?


阅读 188

收藏
2020-12-03

共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问题

2020-12-03