接口
package com.hrf.reflect03;
public interface Dao {
}
Person类
package com.hrf.reflect03;
public class Person {
}
Emp类
package com.hrf.reflect03;
public class Emp extends Person implements Dao {
public Emp() {
}
private int id;
private String username;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Emp(int id, String username) {
super();
this.id = id;
this.username = username;
}
public Emp(int i) {
}
@Override
public String toString() {
return "Emp [id=" + id + ", username=" + username + "]";
}
public String show(int i,String b, double c) {
return null;
}
}
反射测试
package com.hrf.reflect03;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;
public class ReflectTest {
public static void main(String[] args) throws Exception {
test05();
}
public static void test01() throws Exception {
StringBuffer sb = new StringBuffer();
Class<?> aClass = Class.forName("com.hrf.reflect03.Emp");
String package1 = aClass.getPackage().toString();
sb.append(package1);
System.out.println(sb);
}
public static void test02() throws Exception {
StringBuffer sb = new StringBuffer();
Class<?> aClass = Class.forName("com.hrf.reflect03.Emp");
if (!aClass.isInterface()) {
sb.append(Modifier.toString(aClass.getModifiers())).append(" ");
sb.append("class").append(" ");
sb.append(aClass.getSimpleName()).append(" ");
String className = aClass.getSuperclass().getSimpleName();
if (!"Object".equals(className)) {
sb.append("extends").append(" ").append(className);
}
Class<?>[] interfaces = aClass.getInterfaces();
if (interfaces.length > 0) {
sb.append(" ").append("implements").append(" ");
for (Class<?> ainterface : interfaces) {
sb.append(ainterface.getSimpleName()).append(",");
}
sb.deleteCharAt(sb.length() - 1);
}
sb.append("{}");
}
System.out.println(sb);
}
public static void test03() throws Exception {
StringBuffer sb = new StringBuffer();
Class<?> aClass = Class.forName("com.hrf.reflect03.Emp");
Constructor<?>[] constructors = aClass.getDeclaredConstructors();
if (constructors.length > 0) {
String classSimpleName = aClass.getSimpleName();
for (Constructor<?> constructor : constructors) {
sb.append(Modifier.toString(constructor.getModifiers())).append(" ")
.append(classSimpleName).append("(");
Parameter[] parameters = constructor.getParameters();
if (parameters.length > 0) {
for (Parameter param : parameters) {
sb.append(param.getType().getSimpleName()).append(" ");
sb.append(param.getName()).append(",");
}
sb.deleteCharAt(sb.length() - 1);
sb.append(")} \n");
}else {
sb.append("){} \n");
}
}
}
System.out.println(sb);
}
public static void test04() throws Exception {
StringBuffer sb = new StringBuffer();
Class<?> aClass = Class.forName("com.hrf.reflect03.Emp");
Field[] declaredFields = aClass.getDeclaredFields();
if (declaredFields.length > 0) {
for (Field field : declaredFields) {
sb.append(Modifier.toString(field.getModifiers())).append(" ");
sb.append(field.getType().getSimpleName()).append(" ");
sb.append(field.getName()).append(";\n");
}
}
System.out.println(sb);
}
public static void test05() throws Exception {
StringBuffer sb = new StringBuffer();
Class<?> aClass = Class.forName("com.hrf.reflect03.Emp");
Method[] methods = aClass.getMethods();
if (methods.length > 0) {
for (Method method : methods) {
sb.append(Modifier.toString(method.getModifiers())).append(" ");
sb.append(method.getReturnType().getSimpleName()).append(" ");
sb.append(method.getName()).append("(");
Parameter[] parameters = method.getParameters();
if (parameters.length > 0) {
for (Parameter param : parameters) {
sb.append(param.getType().getSimpleName()).append(" ");
sb.append(param.getName()).append(" ");
}
sb.deleteCharAt(sb.length() - 1);
sb.append("){}\n");
} else {
sb.append("){}\n");
}
}
}
System.out.println(sb);
}
}