如何在Java中找出声明的标识符类型?
发布时间:2020-12-15 02:47:42 所属栏目:Java 来源:网络整理
导读:我有一个简单的类Apple扩展自另一个简单的类Fruit. 在运行时,我可以使用 Fruit fruit = new Apple();fruit.getClass(); 获取实际类型的水果对象,即Apple.class. 我还可以使用Apple的fruit instanceof和Fruit的Fruitof来验证这个水果对象是Apple还是Fruit的一
我有一个简单的类Apple扩展自另一个简单的类Fruit.
在运行时,我可以使用 Fruit fruit = new Apple(); fruit.getClass(); 获取实际类型的水果对象,即Apple.class. 我还可以使用Apple的fruit instanceof和Fruit的Fruitof来验证这个水果对象是Apple还是Fruit的一个实例.这两个表达式都返回true,这是正常的. 但有没有办法确定水果标识符的声明类型?在这种情况下,水果. 解决方法
您实际上是在询问有关水果变量声明的问题而不是对象的实际运行时类型(在这种情况下是Apple).
我认为这通常是一个坏主意:你刚刚声明了变量并告诉编译器它是一个Fruit,所以为什么你现在需要找到它呢? 只是为了更加混淆事情,值得注意的是,您还可以使用引用同一对象(仍然是Apple)的不同声明类型的多个变量: Fruit fruit = new Apple(); // fruit declared as Fruit,but refers to an Apple Object thing = fruit; // thing declared as Object,refers to the same Apple 如果你真的想找出声明的类型,那么你有几个选择: >使水果成为实例变量,并使用反射查询声明的类型. 我认为所有这些都非常难看,所以我的一般建议是“不要这样做”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Play Framework 2 – 调用Web服务并返回一个对象
- Java模拟计算机的整数乘积计算功能示例
- 简单了解Java垃圾回收器的种类
- java – 如何将浮点数转换为由字节分子和分母表示的最接近的
- java – 将属性’antiJARLocking’设置为’true’没有找到匹
- java – 有一种便携式的方式来具有“SELECT FIRST 10 * FRO
- java – MouseListener / KeyListener不工作(JPanel)
- 来,我们一起打造一款代码命名工具
- 用Java获取目录中的所有文件的程序
- java:网络编程(UDP (DatagramSocket和DatagramPacket)正