反射机制的核心应用-取得类的结构

反射机制是在运行时发挥能力的技术,依靠系统平台的支持,运行时获取得类定义的结构:

通过反射可以得到一个类的完整结构,需要使用.lang.reflect包中的类:
1.Constructor:表示类中的构造方法;
2.Field:表示类中的属性;
3.Method:表示类中的方法;
这三个类都是AccessibleObject类的子类;
———–利用反射机制获取类实现的所有接口:

public Class>[] getInterfaces();// 返回值是Class泛型实例;

package com.mldn;

interface Chinese

{

public static final String NATIONAL = “China”; // 全局常量

public void sayChina(); // 抽象方法

public void sayHello();

}

class Person implements Chinese

{

private String name = null;

private int age = 0;

public Person() // 无参构造

{}

public Person(String name, int age)

{ // 有参构造

this.name = name;

this.age = age;

}

public void sayChina() // 覆写

{

System.out.println(“China,I'm Chinese!”);

}

public void sayHello() // 覆写

{

System.out.println(“Hello, World!”);

}

public String getName()

{

return this.name;

}

public int getAge()

{

return this.age;

}

public void setName(String name)

{

this.name = name;

}

public void setAge(int age)

{

this.age = age;

}

public String toString()

{

return “姓名:” + this.name + ” 年龄:” + this.age;

}

}

public class GetInterface

{

public static void main(String[] args)

{

// 用Class反射机制可以获取Person类实现的所有接口:

Class> c = null; // 声明Class对象

try

{

c = Class.forName(“com.mldn.Person”); // 实例化Class对象

}

catch (ClassNotFoundException e)

{

e.printStackTrace();

}

Class>[] c1 = c.getInterfaces(); // 获取c反射的类(Person)所实现的所有接口数组

for (Class> i : c1)

{

System.out.println(“实现的接口:” + i.getName());

}

}

}

/*

ubuntu@xu-desktop:~$ com.mldn.GetInterface

实现的接口:com.mldn.Chinese

// 通过反射可以获得一个对象的类,以及这个类实现的接口,对于一个类当然可以获得其实现的接口

*/

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《反射机制的核心应用-取得类的结构
本文地址:https://www.zhiletu.com/archives-137.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!