反射基础学习
Posted 暮雪超霸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射基础学习相关的知识,希望对你有一定的参考价值。
笨笨 以爱之名,只为遇见你! 阿正
package Fanshe; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Demo { public static void main(String[] args) throws Exception { Class clazz = Test.class; Object obj = test(clazz); // System.out.println(obj); invoke1(obj, "chaoba"); field(clazz); // annon(clazz); } public static Object test(Class clazz) throws Exception { Constructor con = clazz.getConstructor(String.class); Object obj = con.newInstance("超霸"); return obj; } public static void invoke1(Object obj, String fangfaming) throws Exception { Method[] ms = obj.getClass().getDeclaredMethods();// 获取本类方法。包括私有方法,不包含夫类方法 ms = obj.getClass().getMethods();// 获取继承的夫类方法。私有方法不显示。 显示公用方法 /* * for (Method method : ms) { if(fangfaming.equals(method.getName())) { * method.invoke(obj, null); * * } //System.out.println(method); } */ Method m = obj.getClass().getMethod(fangfaming, null); // 获取指定方法 m.invoke(obj, null); } public static void field(Class clazz) { Field[] fs = clazz.getDeclaredFields(); // fs=clazz.getFields(); for (Field field : fs) { System.out.println(field.getName()); } } }
以上是关于反射基础学习的主要内容,如果未能解决你的问题,请参考以下文章
Java反射学习总结五(Annotation(注解)-基础篇)
Java反射学习总结五(Annotation(注解)-基础篇)