2019独角兽企业重金招聘Python工程师标准>>>

Java反射机制demo(四)—获取一个类的父类和实现的接口

1,Java反射机制得到一个类的父类

使用Class类中的getSuperClass()方法能够得到一个类的父类
如果此 Class 表示 Object 类、一个接口、一个基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示该 Object 类的 Class 对象。
测试代码:

/*** Created with IntelliJ IDEA.* Description:* User: zhubo* Date: 2017-09-01* Time: 17:34*/
public class Demo4 {public static void main(String[] args) {Class<?> c = Integer.class;System.out.println("Integer的父类是:"+c.getSuperclass());c = Number.class;System.out.println("Number的父类是:"+c.getSuperclass());c = Object.class;System.out.println("Object的父类是:"+c.getSuperclass());}
}
Integer的父类是:class java.lang.Number
Number的父类是:class java.lang.Object
Object的父类是:null

由于Java没有多继承,一个类最多只能有一个父类,因此返回类型并不是一个数组。

2,Java反射机制返回一个类实现的接口

当我们开发一个接口,并用一个类去实现它,我们看到某个类,就知道它实现了对应的什么接口,但是机器本身得到一个类时,并不知道它实现的接口是什么样子。通过反射机制,可以取到某个类实现的接口的Class对象,从而可以探查这个接口内部的结构。

本文中给出了一个简单的Demo。

首先,接口的定义如下;

/*** Created with IntelliJ IDEA.* Description:* User: zhubo* Date: 2017-09-01* Time: 17:58*/
public interface Animal {public static final String name="animal";public String sayHello(String name);
}

然后,定义一个类去实现这个接口

/*** Created with IntelliJ IDEA.* Description:* User: zhubo* Date: 2017-09-01* Time: 17:58*/
public class Dog implements Animal {@Overridepublic String sayHello(String str) {return String.format("",this.name,str);}
}

接口和实现类中都只有一个方法。

测试类的代码如下:

public static void main(String[] args) {Class<?> c = Dog.class;Class<?> interfaces[] = c.getInterfaces();for (Class<?> inte : interfaces){System.out.println("Dog实现接口 : " + inte);}
}

运行结果:

Dog实现接口 : interface reflact.bean.Animal

当然,Java没有多继承,但是可以实现多个接口,因此这里返回了一个数组。

需要注意的是:

Class<?>[] getInterfaces()得到的数组中,接口对象顺序和这个对象所表示的类中implements子句中接口名的顺序,是一致的。

转载于:https://my.oschina.net/LucasZhu/blog/1527702

Java反射机制demo(四)—获取一个类的父类和实现的接口相关推荐

  1. (反射):获取一个类的父类和父类的泛型

    一.解决问题 获取一个类的父类和父类的泛型 二.实现 Student.java package Test3;public class Student {private String name;priv ...

  2. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...

    方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...

  3. 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换

    作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上 ...

  4. Java反射机制demo(五)—获得并调用一个类中的方法

    这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMetho ...

  5. Java反射机制Reflection

    Java反射机制 1 .class文件 2 Class类 3 Class类与反射机制 4 Java反射机制的类库支持及简介 5 反射机制的定义与应用 6 反射机制Demo Java反射机制demo(一 ...

  6. 反射 数据类型_这是一份超全面详细的Java反射机制学习指南

    Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性.很多千锋的学员在面试中都会被问到Java反射机制这个问题,为了帮助大家更好的掌握这个知识点,千锋武汉Java培训小 ...

  7. 一个例子让你了解Java反射机制

    本文来自:blog.csdn.net/ljphhj JAVA反射机制: 通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运 ...

  8. java 反射 工厂模式_Java反射机制demo(七)—反射机制与工厂模式

    Java反射机制demo(七)-反射机制与工厂模式 工厂模式 简介 工厂模式是最常用的实例化对象模式. 工厂模式的主要作用就是使用工厂方法代替new操作. 为什么要使用工厂模式?直接new不好吗? 直 ...

  9. Java反射机制基本概念与相关Class类对反射机制的实现

    Java反射机制 1.何为反射 2.反射作用 3.Class类实例化应用 3.1.进行Class类对象的实例化的三种方式 3.2.Class类实例化其他类对象的两种方式 3.2.1.调用newInst ...

最新文章

  1. 【青少年编程】【四级】创意画图
  2. 基于pyBoard的进一步的一些测试实验,MC3008
  3. python编程小组信息程序下载_300种 Python 编程图书大集合(FTP服务器下载) (豆瓣 Python编程小组)...
  4. 深入理解 C# 协变和逆变
  5. 为什么计算机语言都是英语,编程为什么都是英语 编程为什么没有汉语
  6. 从程序员到项目经理(二)
  7. Windows域控 批量设置用户下次登录 修改密码【全域策略生效】
  8. bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛
  9. Restlet 短连接问题
  10. 3DMax渲染常见问题
  11. 科学计算机怎么直接显示10的多少次方,科学计算器怎么开n次方
  12. verilog实现矩阵卷积运算
  13. VISTA、Win7激活administrator用户
  14. 公司董事会人数怎么确定
  15. PIE-engine APP 教程 ——基于PIE云平台的城市生态宜居性评价系统——以京津冀城市群为例
  16. python:利用pandas进行绘图(总结)绘图格式
  17. 测试用例(微信发朋友圈/评论/点赞/搜索/购物车)
  18. iOS 16 Beta如何降级iOS 15系统?详细图文教程!
  19. 如何一键免费压缩PDF文件?最好的 PDF 阅读器免费下载!
  20. 【翻译】Chromium 网络栈 disk cache 设计原理

热门文章

  1. 脑机接口让脊髓损伤患者重新获得手部触觉
  2. UE4用音乐音效,各种声音都有,比较全了
  3. Linux启动加载过程解析
  4. 人类基因组最后一块拼图完成!Science罕见6篇连发
  5. 他在京东每天做1000万图灵测试
  6. 3秒获得Win11系统管理员权限,微软高危漏洞被公开,只因悬赏奖金打骨折
  7. 在Hinton看来是“宇宙答案”GPT-3,到LeCun这里却“对世界一无所知”
  8. 特斯拉大半夜「见鬼」!空无一人的路上,它却看见「幽灵」秒刹车
  9. 百度增长复苏,市值一夜涨160亿;李彦宏:技术价值再度闪耀,宁可创新冒险也不平庸保守...
  10. 已开源!谷歌将AutoML应用到Transformer架构,实现机器翻译最佳性能