如何找出Java中标识符的声明类型?

如何找出Java中标识符的声明类型?,第1张

如何找出Java中标识符的声明类型

您实际上是在问有关变量声明的问题,

fruit
而不是对象的实际运行时类型
Apple
在这种情况下为)。

我认为这通常是一个坏主意:您只是声明了变量,并告诉编译器它为a

Fruit
,那么为什么现在需要找出这个变量?

只是要使事情更加混乱,值得注意的是,您还可以具有多个具有不同声明类型的变量来引用同一对象(仍然是Apple):

Fruit fruit = new Apple(); // fruit declared as Fruit, but refers to an AppleObject thing = fruit;      // thing declared as Object, refers to the same Apple

如果您真的想找出已声明的类型,则可以选择以下几种方法:

  • 创建
    fruit
    一个实例变量,并使用反射查询声明的类型。
  • 对源代码进行一些处理以找到变量声明
  • 对已编译的字节码进行一些处理以找到声明类型(尽管有可能激进的编译器甚至可以完全优化编译时间声明,例如,在意识到该代码中的结果只能是苹果之后)

我认为所有这些都很难看,所以我的一般建议是“不要这样做”。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5487016.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存