当前位置: 首页 > news >正文

判断类中的某个属性 是否是某个类的派生子类

自己写的测试例子 分享一下  

其中郁闷了     f.getType() instanceof Man  感觉这样就可以了但就是不正确,希望来人搞定的告诉我一声

import java.lang.reflect.Field;
import java.lang.reflect.Type;

/**
 * @author Administrator
 *  类的反射
 */
public class Reflect {
	
	public static void main(String [] args) throws ClassNotFoundException{
		new Child1().doMain();
	}

	
	
}
interface Do{
	public void doMain();
}

class Man{
	
}

class Father extends Man implements Do{

	@Override
	public void doMain() {
		// TODO Auto-generated method stub
		
	}
	
}

class Child1{
	private Father father;
	private String name;
	private Integer age;
	private Boolean sex;
	
	/**
	 * @param clazz 派生子类
	 * @param Findclazz  要找的父类
	 * @return
	 * @throws ClassNotFoundException
	 * 	递归该类是否是某个类 子类
	 */
	public boolean allExtends(Class<?> clazz,Class Findclazz) throws ClassNotFoundException{
		System.out.println(clazz.getName());
//		System.out.println(Class.forName(clazz.getName()).getSuperclass());
		if(clazz==Findclazz){//找到停止条件
			return true; 
		}else if(clazz==Object.class){
			return false;
		}
		return allExtends(Class.forName(clazz.getName()).getSuperclass(), Findclazz);
	}
	
	public void doMain() throws ClassNotFoundException{
		Field[] field= this.getClass().getDeclaredFields();
		for(Field f:field){
			//System.out.println(f.getType().getSuperclass()==Man.class);
			System.out.println(allExtends(f.getType(),Man.class));
			//System.out.println(f.getType() instanceof Man); //感觉应该是这个样子 但是就是报错  郁闷
			System.out.println();
		}
		}
	}

class Child2{
	
}



相关文章:

  • mysql 复制表结构语句
  • js java 转 html code
  • eclipse + tomcat 重复加载 多工程 host
  • 编码 转码
  • eclipse-helios中Errors running builder JavaScript Validator的问题
  • SSH_Secure_Shell_ClientH工具密钥登录linux
  • linux 学习(一)---vm网络共享
  • Runtime exec 执行linux find 命令时 引号问题
  • jquery 水平滚动
  • 谷歌火狐 上传图片预显示
  • linux 学习(centos)
  • paoding-rose源码(github)转eclipse项目
  • ajax 关于zepto.js 进行jsonp请求时无法得到data中的参数数据
  • springmvc jsp 访问 (tomcat)
  • paoding-rose 框架BaseDAO
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【面试系列】之二:关于js原型
  • jquery cookie
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Python打包系统简单入门
  • Redis学习笔记 - pipline(流水线、管道)
  • vue2.0项目引入element-ui
  • 大型网站性能监测、分析与优化常见问题QA
  • 第十八天-企业应用架构模式-基本模式
  • 对超线程几个不同角度的解释
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 排序(1):冒泡排序
  • 前端知识点整理(待续)
  • 前端自动化解决方案
  • 写给高年级小学生看的《Bash 指南》
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 追踪解析 FutureTask 源码
  • Linux权限管理(week1_day5)--技术流ken
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #NOIP 2014# day.1 T2 联合权值
  • #Z2294. 打印树的直径
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (c语言)strcpy函数用法
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (六)Hibernate的二级缓存
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core WebAPI中封装Swagger配置
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @Autowired注解的实现原理
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @EnableWebMvc介绍和使用详细demo
  • @Repository 注解
  • [100天算法】-目标和(day 79)
  • [2016.7 day.5] T2
  • [2016.7.Test1] T1 三进制异或
  • [acwing周赛复盘] 第 69 场周赛20220917