Java反射机制——获取Class对象,属性和方法(三)
2017-01-09 16:13
417 查看
一、获取Class类的对象,属性、调用类方法。
二、注意这两种方法区别。
getDeclaredMethods():获取的是类自身声明的所有方法,包含public、protected和private方法。
getMethods():获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。
package org.wangkeqing; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Student1 { private int age; private String name; public Student1(int age, String name) { super(); this.age = age; this.name = name; } public Student1() {} public int getAge() { return age; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public static void main(String[] args) throws Exception{ Class<?> class1 = Class.forName("org.wangkeqing.Student1"); Field[] fields = class1.getDeclaredFields(); Method[] methods = class1.getDeclaredMethods(); //得到类本身的所有方法 for(Field f:fields){ System.out.println("---------------------------属性"+f); } System.out.println("------------------分割线--------------------"); for(Method m:methods){ System.out.println("---------------------------方法"+m); } //调用无参方法 //得到Student1类的方法,第一个参数到最后一个参数都是方法对应的参数类型 Method method = class1.getMethod("reflect1"); //调用方法(第一个参数为对象,第二个参数到最后一个参数为方法属性值) method.invoke(class1.newInstance()); //调用有参数的方法 //得到某个类的方法 Method m2 = class1.getMethod("learn",String.class,String.class); //调用方法(第一个参数为对象,第二个参数到最后一个参数为方法属性值) m2.invoke(class1.newInstance(),"张三","商务英语"); } public void learn(String name,String bookname) { System.out.println(name+"学习了"+bookname); } public void reflect1() { System.out.println("-----------------调用了这个方法-----------"); } }
二、注意这两种方法区别。
getDeclaredMethods():获取的是类自身声明的所有方法,包含public、protected和private方法。
getMethods():获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。
相关文章推荐
- 四种获取Class对象的方法 Java反射机制
- 四种获取Class对象的方法 Java反射机制
- java反射(3)获取Class对象属性方法和构造器
- 反射机制_介绍_Class对象获取_动态操作_构造器_方法_属性JAVA211-212
- 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】
- Java反射机制(获取Class对象的三种方式+获取Class中的构造函数进行对象的初始化+获取反射类的字段+获取反射类的一般方法)
- Class对象的获取方法
- C#反射新建类实例和调用类方法及属性帮助类 以及获取或设置对象属性中字段值帮助类
- java反射之——获取Class对象的方法
- 用反射来在方法里获取泛型对象的属性
- 获取JScript对象的expando属性的方法
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- Android JNI开发高级篇有关Android JNI开发中比较强大和有用的功能就是从JNI层创建、构造Java的类或执行Java层的方法获取属性等操作。 一、类的相关操作 1. jclass FindClass(JNIEnv *env, const char *name);
- java反射机制,通过类名获取对象,通过方法名和参数调
- 获取com对象的所有属性和方法
- 获取类的class对象的几种方法
- JQ获取指定class下面的子元素,并加属性以及JQ追加子元素的方法
- 测试 java反射Reflection中 获取 类属性、方法、构造方法及 调用类方法改变 对象属性
- C#反射实例——获取及设置对象属性,运行对象方法
- NetBox环境下ajax用get获取数据,中文乱码的问题解决:对象不支持此属性或方法: 'Response.CharSet'