一、建立一個類java
package com.ljb.app.model;// 下面用到的路徑app
import java.io.Serializable;maven
/**
* 序列化實體類
* @author LJB
* @version 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;
}this
public void setName(String name) {
this.name = name;
}spa
public int getAge() {
return age;
}.net
public void setAge(int age) {
this.age = age;
}對象
public String getGender() {
return gender;
}get
public void setGender(String gender) {
this.gender = gender;
}io
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
說明:能夠不用序列化
二、建立經過類的全路徑獲取類的方法及屬性的類
package com.ljb.app.my_first_maven;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import javax.swing.JOptionPane;
/**
* 利用反射獲取類信息
* @author LJB
* @version 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();
}
}
}
三、建立運行類
package com.ljb.app.my_first_maven;
/**
* 測試運行類
* @author 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.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------獲取屬性信息結束-------