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

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


问题概括

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

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


一、案例准备

1.准备了一个父类CouF

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


二、问题描述

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

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

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

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

相关推荐
陈小桔14 分钟前
限流算法java实现
java
黑客老李18 分钟前
JavaSec | SpringAOP 链学习分析
java·运维·服务器·开发语言·学习·apache·memcached
开开心心就好26 分钟前
高效Excel合并拆分软件
开发语言·javascript·c#·ocr·排序算法·excel·最小二乘法
特立独行的猫a32 分钟前
Nuxt.js 中的路由配置详解
开发语言·前端·javascript·路由·nuxt·nuxtjs
勤奋的知更鸟44 分钟前
Java编程之原型模式
java·开发语言·原型模式
叶 落1 小时前
[Java 基础]数组
java·java 基础
KK溜了溜了1 小时前
JAVA-springboot log日志
java·spring boot·logback
珂朵莉MM1 小时前
2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·职场和发展·机器人
香蕉炒肉1 小时前
Java优化:双重for循环
java·开发语言
傍晚冰川1 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习