我正在尝试调试继承的程序。该程序包含字符串,数组列表和集合,类型之间的大量转换,并且我需要执行一些字符串操作(substring等)。
substring
数据打印到控制台时 看起来 像字符串(例如,一行文本,如Johnson, John或Chicago Region),但是我的代码因各种index out of range错误而出错,这表明我强制转换为String的代码无法正常工作。
Johnson, John
Chicago Region
index out of range
我想尝试弄清楚传入的数据类型,并留下我的方法来验证程序是否按预期运行。有什么办法可以找到Java中的字段类型?在一个理想的世界中,我可以在每个步骤生成控制台输出,该输出将为我提供数据值以及它是字符串,数组列表还是集合。能做到吗?
给定任何对象的实例,可以调用它的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问题。