你怎么知道java中的变量类型?

新手上路,请多包涵

假设我声明了一个变量:

 String a = "test";

我想知道它是什么类型,即输出应该是 java.lang.String 我该怎么做?

原文由 Miguel Ribeiro 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 316
2 个回答
a.getClass().getName()

原文由 Martin 发布,翻译遵循 CC BY-SA 2.5 许可协议

扩展马丁的答案……

马丁解决方案

a.getClass().getName()

扩展解决方案

如果你想让它与任何东西一起工作,你可以这样做:

 ((Object) myVar).getClass().getName()
//OR
((Object) myInt).getClass().getSimpleName()

在基本类型的情况下,它将被包装(自动装箱)在相应的对象变体中。

示例 #1(常规)

 private static String nameOf(Object o) {
    return o.getClass().getSimpleName();
}

示例 #2(泛型)

 public static <T> String nameOf(T o) {
    return o.getClass().getSimpleName();
}


额外学习

  • 有关 Java 类型、值和变量的资料: https ://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html
  • 自动装箱和拆箱: https ://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
  • instanceof 的模式匹配文档: https ://docs.oracle.com/en/java/javase/14/language/pattern-matching-instanceof-operator.html

原文由 Atspulgs 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题