Java关于由子类构造器生成的父类对象的反射问题

Java关于由子类构造器生成的父类对象的反射问题


问题概括

提示:这里我就不绕圈子直接描述:

Java中由子类构造器生成的父类的getclass.getName不是父类的类名而是子类的类名,因此不可以用子类构造器生成的父类对象获取Class类进行反射操作,而是直接用父类名


一、案例准备

1.准备了一个父类CouF

2.准备了一个继承父类CouF的子类Cou


二、问题描述

在测试类中新建一个由子类(Cou)构造器生成的父类对象couf,并调用getClass方法获取Class类再调用getName方法获取该对象的类名

而getName()返回的结果为Cou,说明该父类对象的类名为Cou而不是CouF

因此一定不能用对象.getClass.getDeclareMethod()获取对象的方法,否则会报错如下图所示

正确方法应该用父类的类名如下图所示

相关推荐
2401_8370885014 小时前
stringRedisTemplate.opsForHash().entries
java·redis
独隅14 小时前
在 Lua 中,你可以使用 `os.date()` 函数轻松地将时间戳转换为格式化的时间字符串
开发语言·lua
思麟呀15 小时前
Linux的基础IO流
linux·运维·服务器·开发语言·c++
星释15 小时前
Rust 练习册 :Pythagorean Triplet与数学算法
开发语言·算法·rust
星释15 小时前
Rust 练习册 :Nth Prime与素数算法
开发语言·算法·rust
lkbhua莱克瓦2416 小时前
Java基础——集合进阶3
java·开发语言·笔记
蓝-萧16 小时前
使用Docker构建Node.js应用的详细指南
java·后端
多喝开水少熬夜16 小时前
Trie树相关算法题java实现
java·开发语言·算法
QT 小鲜肉16 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习
lsx20240617 小时前
MySQL WHERE 子句详解
开发语言