有没有办法将 java 数据类型输出到控制台?
Posted
技术标签:
【中文标题】有没有办法将 java 数据类型输出到控制台?【英文标题】:Is there a way to output the java data type to the console? 【发布时间】:2012-05-13 09:14:53 【问题描述】:我正在尝试调试我继承的程序。这个程序包含字符串,数组列表和集合,类型之间的大量转换,我需要做一些字符串操作(substring
等)
当打印到控制台时,数据看起来类似于字符串(例如,它是一行文本,如 Johnson, John
或 Chicago Region
),但我的代码因各种 index out of range
而出错错误,表明我要转换为 String 的代码不起作用。
我想尝试找出传入的数据类型,并让我的方法来验证程序是否按预期运行。有没有办法在 Java 中找到字段类型?在一个完美的世界里,我可以在每一步都生成控制台输出,这会给我数据值,无论它是字符串、数组列表还是集合。可以吗?
【问题讨论】:
顺便说一句,如果你没有得到ClassCastException
,那么转换为String
正在工作。
【参考方案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
打印原始变量的类型有点复杂:有关详细信息,请参阅this SO question。
【讨论】:
【参考方案2】:使用getClass()
方法。
Object o;
System.out.println(o.getClass());
【讨论】:
【参考方案3】:instance.getClass()
是如果您只想打印类型的方法。如果您想根据类型分支行为,也可以使用instanceof
,例如
if ( x instanceof String )
// handle string
【讨论】:
【参考方案4】:只需在任何对象中执行.class.getName();
【讨论】:
【参考方案5】:对于任何对象x
,您可以打印x.getClass()
。
【讨论】:
我会做 x.getClass.getName() @PaulVargasif(object == null) sout("null")
那么数组呢?对象或基元数组?
例如int
s 的数组将打印[I
。以上是关于有没有办法将 java 数据类型输出到控制台?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将 uicontrol 回调函数的输出关联到它自己的“用户数据”?