/**
* 递归查询输入对象的归属类和其所有父类
* @param obj 需要查询对象
* @param list 保存查到信息的list集合
* @return
* @throws IllegalAccessException
* @throws InstantiationException
*/
public static List<String> seeSuper(Object obj, List<String> list) throws IllegalAccessException, InstantiationException {
//获取对象的Class对象
Class c = obj.getClass();
//打桩输出语句
// System.out.println(c.getName());
//获取该类的所有实现接口
// Class[] classes = c.getInterfaces();
//获取该对类的说有方法
// Method[] methods =c.getMethods();
//将完整的类名存入list集合
list.add(c.getName());
//获取父类的Class对象
Class c1 = c.getSuperclass();
//结束递归的条件
if(c1== null){
return list;
}
//创建父类对象
Object object = c1.newInstance();
//执行递归
list = seeSuper(object,list);
return list;
}
public static void main(String[] args) {
//测试
List<String> list = new ArrayList<>();
try {
list = seeSuper("string",list);
System.out.println(list);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
获取某对象的类及其类的所有父类信息
最新推荐文章于 2024-03-12 11:10:43 发布