当前位置: 首页 > 面试题库 >

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

全冥夜
2023-03-14
问题内容

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

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

我想尝试弄清楚传入的数据类型,并留下我的方法来验证程序是否按预期运行。有什么办法可以找到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问题。



 类似资料:
  • 问题内容: 假设我在redis中有以下键: 密钥名称: setkey hashkey zsetkey 当我输入命令: 我正确地得到所有上述密钥列表。要获取特定键的数据类型,我们使用命令。 有没有办法列出Redis中的所有键及其数据结构?例如: setkey set hashkey hash zsetkey sorted set 是否有命令/本机方式来实现这一目标?提前致谢。 问题答案: 首先,您不

  • 我有Spring acpect,它会在我的应用程序中的每个控制器方法周围触发。在方面的主体中,我想访问方法签名中声明的所有请求参数。有没有一种简单的方法可以避免反思?

  • 问题内容: 我有一个方法返回基类的集合: 由于()的返回类型与方法()的返回类型不匹配,因此无法编译。我理解为什么会这样:由于泛型类型不同,所以两个类之间没有继承关系。 有很多方法可以解决编译器错误,从将方法的返回类型更改为不使用Arrays.asList并将派生对象之一转换为Base。 当解析Arrays.asList调用的通用类型时,有没有办法告诉编译器使用其他但兼容的类型?(我一直在尝试使用

  • 我有一个CSV文件,我正在尝试导入MongoDB数据库中的CSV文件。不幸的是,这种体验并没有像我希望的那样工作。CSV文件的内容不相关,因为当我使用MongoDB Compass手动导入它时,没有问题,它按我想要的方式出现。因此,如果可能的话,我试图使用Java和Spring Boot将其从本地文件夹保存到MongoDB,但我找不到任何关于如何这样做的好建议或解释。 我用的是Spring Boo

  • 问题内容: 我正在尝试在Java中执行以下操作: 但是代码无法编译,因为我不能用 T 代替 Class <?>。 在具体的课程中,我可以这样称呼 bar : 但是对于 T而言 ,这是行不通的。即没有 T.class 这样的东西 __ 在C#中, typeof 适用于具体类型和模板类型。因此,对bar的调用将是: 但是我无法在Java中找到任何类似的东西。 我是否缺少某些东西,或者Java是否无法获

  • 问题内容: 如标题所述,是否有一种简单的方法可以将两列输出到Java中的控制台? 我知道,但是在使用printf时,我还没有找到基于特定列进行空间分配的方法。 问题答案: 使用宽度和精度说明符,将其设置为相同的值。这将填充太短的字符串,并截断太长的字符串。“-”标志将使列中的值左对齐。