`
zjh1n795
  • 浏览: 9833 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

其中郁闷了 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{
	
}



分享到:
评论

相关推荐

    Java 课程设计

    1. 输出50—100间的所有素数,其中判断一个数是否为素数用函数完成。 2. 设计一个学生成绩管理系统,能输入学生的学号、姓名和成绩等数据,能按成绩从高到低进行排序,并能将排序的结果输出。 提示: 设计一个学生类...

    Java程序设计习题(含答案解析).doc

    7. 最终类不能派生子类,最终方法不能被覆盖。(正确) 解析:在 Java 中,final 类不能被继承,final 方法不能被覆盖。 8. 子类要调用父类的方法,必须使用 super 关键字。(正确) 解析:在 Java 中,子类可以...

    十二生肖和星座Java工具类.rar

    例如,`LocalDate`对象可以用来判断一个人的出生日期是否落在某个星座的范围内。 4. **条件判断**:计算生肖通常涉及到对年份进行模运算(%),然后与生肖的顺序进行比较。星座的判断则需要检查日期是否在给定的...

    语言程序设计资料:java-《Java语言程序设计》期末复习题.doc

    8. 最终类不能派生子类,最终方法不能被覆盖。【正确】 9. 子类要调用父类的方法,必须使用super关键字。【正确】 10. 一个Java类可以有多个父类。【错误,Java类只能继承一个父类】 11. 如果p是父类Parent的对象...

    java面向对象

    5. **正确**:最终类(final class)不能派生子类,最终方法(final method)不能被重写。 #### 六、程序错误及改正 1. **错误**:`abstract`和`final`不能同时修饰类。 - **改正**:删除`final`。 2. **错误**:...

    JavaSE 基础知识总结

    - **final类不能被继承:** 不能从final类派生子类。 - **String类:** String类是final类,不可被继承。 **7.7 抽象类** 抽象类不能被实例化,可以包含抽象方法和具体方法。 **7.8 接口(模板方法模式)** 接口...

    java 经典面试笔试题

    因此,最终类不能派生子类,最终方法也不能被覆盖。 - **解析**: 正确。最终类和最终方法都具有不可扩展性。 5. **子类调用父类方法** - **知识点**: 子类可以通过`super`关键字来调用父类的方法。这在继承体系中...

    大作业子系统收集模板2

    在领域分析阶段,需要确定系统中的关键类和它们的属性。这些类可能包括顾客信息、菜品管理、订单处理、库存控制、支付结算等。通过绘制类图,可以清晰地展示各个类及其之间的关系,以反映餐饮业务流程。 **3. 总体...

    6数据库系统概论期末试题及答案重点知识.pdf

    第八题:如果在一个关系中,存在某个属性(或属性组),虽然不是该关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的()。答案是 C.外码。 关系数据模型中的术语“元组...

    第8章C=多媒体软件制作=天津师范大学.ppt

    此外,还可以通过设置判断图标的文件属性和分支路径的属性来定制分支结构的行为。 循环分支结构可以通过判断图标或者交互图标来实现。例如,当满足特定条件时,程序会反复执行某个分支路径,直到条件不再满足为止。...

    语言程序设计课后习题答案

    语句if(x == 3)首先判断x的值是否为3,若相等条件表达式的值为ture,否则为false。 2-15 什么叫做作用域?什么叫做局部变量?什么叫做全局变量,如何使用全局变量? 解: 作用域是一个标识符在程序正文中有效的...

    2022年计算机等级考试二级模拟试题及答案.doc

    4. 列表框选定属性:列表框内某个条目是否被选定,可以通过检查其`Selected`属性来确定。选项A)的`Value`通常用于获取或设置列表框当前选中的条目的索引,B)的`ColumnCount`是获取列表框的列数,C)的`ListCount`是...

    桂林电子科技大学211数据库2013A卷

    考生需要确定基本函数依赖集F,计算(学号)关于F的闭包,识别候选码,并判断R是否达到某个范式。 设计题则要求考生根据业务需求,首先构建E-R模型,包括部门、职工和产品的实体及它们之间的联系,并标明属性。然后...

    C#测试题(选择题程序题等)

    在C#中,并非所有的类都能派生子类,例如密封类(sealed class)就不能被继承。 3. **文件流的使用** - **知识点**:`FileStream` 类的功能。 - **解释**:正确。`FileStream` 类可以用来读写文件,不仅可以打开...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 实例137 从数组中随机取出元素 165 实例138 合并数组 166 实例139 拆分数组 167 实例140 遍历数组 168 2.11 日期和时间 169 实例141 设置...

    代码.zip

    5. 控制流:通过`for`和`while`循环处理批量数据,以及`if/else`语句进行条件判断,比如检查学生的成绩是否及格。 6. 函数:将重复使用的代码封装成函数,提高代码的可重用性和可读性。例如,`add_student()`, `...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 实例137 从数组中随机取出元素 165 实例138 合并数组 166 实例139 拆分数组 167 实例140 遍历数组 168 2.11 日期和时间 169 实例141 设置...

Global site tag (gtag.js) - Google Analytics