Java反射总结
概述
通常在Java代码中使用一个类,需要在编译时知道类的位置。但是在某些时候,需要使用的类在编译时是未知的,相关信息需要在运行时确定。此时就可以通过反射获得使用只有在运行时才能确定名称的类,完成创建类的对象,读写/成员,调用函数等操作。本文通过一系列的例子讲述反射常用的方法的使用,用于测试的类如下:
package com.minghui.model;
class Engineer extends Employee implements Comparable{
private String mType;
private int mTypeCode;
String mSkill;
private Engineer(String name, String tittle) {
this(name, tittle, 0);
}
protected Engineer(String name) {
this(name, "Junior", 0);
}
public Engineer(String name, String tittle, int typeCode) {
super(name, tittle);
setType(typeCode);
setSkill(typeCode);
mTypeCode = typeCode;
}
private String setType(int typeCode) {
mType = (typeCode == 0) ? "Software Engineer" : " Test Engineer";
return mType;
}
void setSkill(int typeCode) {
mSkill = (typeCode == 0) ? "Code" : " Test";
}
public String getType() {
return mType;
}
public int compareTo(Engineer otherEngineer) {
return mTypeCode - otherEngineer.mTypeCode;
}
@Override
public String toString() {
return "Name:" + mName + " Tittle:" + mTittle + " Type: " + mType + " Skill: " + mSkill;
}
public static String getSkillByCode(int typeCode) {
return (typeCode == 0) ? "Code" : " Test";
}
}
它的父类如下:
package com.minghui.model;
public class Employee {
public static String descripiton = "EMPLOYEE";
protected String mName;
protected String mTittle;
public Employee(String name, String tittle) {
mName = name;
mTittle = tittle;
}
public String getName