1、创建一个类
package com.ljb.app.model;// 下面用到的路径
import java.io.Serializable;
/**
* 序列化实体类 * LJB * 2015年2月10日 */public class Student implements Serializable{ private String name; private int age; private String gender; private transient String password; public Student(String name, int age, String gender , String password) { super(); this.name = name; this.age = age; this.gender = gender; this.password = password; }public String getName() {
return name; }public void setName(String name) {
this.name = name; }public int getAge() {
return age; }public void setAge(int age) {
this.age = age; }public String getGender() {
return gender; }public void setGender(String gender) {
this.gender = gender; }public String getPassword() {
return password; }public void setPassword(String password) {
this.password = password; }}说明:可以不用序列化
2、创建通过类的全路径获取类的方法及属性的类
package com.ljb.app.my_first_maven;
import java.lang.reflect.Field;
import java.lang.reflect.Method;import javax.swing.JOptionPane;
/**
* 利用反射获取类信息 * LJB * 2015年2月26日 */public class ReflectionDemo { public ReflectionDemo () { String classPath = JOptionPane.showInputDialog(null, "输入类的全路径:"); try { // 根据类的全路径加载类,返回该类的Class对象 Class cla = Class.forName(classPath); System.out.println("------获取方法信息-------"); Method[] methods = cla.getDeclaredMethods(); for (Method meth:methods) { System.out.println(meth.toString()); } System.out.println("------获取方法信息结束-------"); System.out.println("------获取属性信息-------"); Field[] fields = cla.getDeclaredFields(); for (Field fild:fields) { System.out.println(fild.toString()); } System.out.println("------获取属性信息结束-------"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}3、创建运行类
package com.ljb.app.my_first_maven;
/**
* 测试运行类 * LJB * @version 2015年2月28日 */public class TestReflection {/**
* @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ReflectionDemo rd = new ReflectionDemo(); }}
4、运行
4.1 弹出输入全路径对话框
4.2 全路径
com.ljb.app.model.Student
4.3 运行结果
------获取方法信息-------public int com.ljb.app.model.Student.getAge()public void com.ljb.app.model.Student.setAge(int)public java.lang.String com.ljb.app.model.Student.getGender()public void com.ljb.app.model.Student.setGender(java.lang.String)public void com.ljb.app.model.Student.setPassword(java.lang.String)public java.lang.String com.ljb.app.model.Student.getName()public void com.ljb.app.model.Student.setName(java.lang.String)public java.lang.String com.ljb.app.model.Student.getPassword()------获取方法信息结束-------------获取属性信息-------private java.lang.String com.ljb.app.model.Student.nameprivate int com.ljb.app.model.Student.ageprivate java.lang.String com.ljb.app.model.Student.genderprivate transient java.lang.String com.ljb.app.model.Student.password------获取属性信息结束-------