您的位置:首页 > 编程语言 > Java开发

java使用反射实例

2017-09-06 16:09 316 查看
创建一个Student类用来供反射调用

public class Student {
private String id;

public Student(String id) {
this.id = id;
}

public Student() {
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}
}


在main中代码如下

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main {
public static void main(String[] args) {
Student student = new Student();
System.out.println(student.getClass().getName());
try {
Class c = Class.forName(student.getClass().getName());
Object o = c.newInstance();

Method getId = c.getDeclaredMethod("getId", null);
Method setId = c.getDeclaredMethod("setId", java.lang.String.class);
Object invoke = setId.invoke(o, "123");
System.out.println(getId.invoke(o,null));
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}


1.获得Class对象,即ClassforName的返回值

类加载 Class.for
4000
Name() 其中的参数是String类型。传入类名,必须包含报名

2.获取类中的方法 getDeclaredMethod方法

使用为 类对象.getDeclaredMethod 传入参数分别为 方法名称 ,参数类 例子很明确

3.使用invoke方法实际调用

method.invoke 参数 class 和Object…

4.返回值是Object 可以打印显示是否正确

方法关键字

含义

getDeclaredMethods()

获取所有的方法

getReturnType()

获得方法的放回类型

getParameterTypes()

获得方法的传入参数类型

getDeclaredMethod(“方法名”,参数类型.class,……)

获得特定的方法

构造方法关键字

含义

getDeclaredConstructors()

获取所有的构造方法

getDeclaredConstructor(参数类型.class,……)

获取特定的构造方法

父类和父接口

含义

getSuperclass()

获取某类的父类

getInterfaces()

获取某类实现的接口

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: