package com.sou.reflection.classpkg;
import org.junit.Test;
import java.lang.reflect.Method;
/**
* 反射获取Class的三种方式
* 1)Class.forName()
* 2) obj.getClass
* 3) class.class
*/
public class ReflectionApp {
//Class.forName()
@Test
public void test01() throws Exception {
Class<?> clazz = Class.forName("java.lang.Object");
//获取所有的方法
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method);
}
System.out.println("---------------");
//获取标识为Public的方法
Method[] methods1 = clazz.getMethods();
for (Method method : methods1) {
System.out.println(method);
}
}
//obj.getClass
@Test
public void test02() {
String name = "allen";
Class<?> clazz = name.getClass();
Method[] methods = clazz.getMethods();
for (Method method : methods) {
System.out.println(method);
}
}
//class.class
@Test
public void test03() {
System.out.println(Integer.class);
System.out.println(Integer.TYPE);
}
}
网友评论