前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA反射简单实例

JAVA反射简单实例

作者头像
用户2192970
发布2019-02-22 16:22:16
5670
发布2019-02-22 16:22:16
举报
文章被收录于专栏:杨飞@益术杨飞@益术

package reflect;

import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier;

public class Entity extends EntityFather {

    private String name;     private String age;     private String sex;

    public String getName() {         return name;     }

    public void setName(String name) {         this.name = name;     }

    public String getAge() {         return age;     }

    public void setAge(String age) {         this.age = age;     }

    public String getSex() {         return sex;     }

    public void setSex(String sex) {         this.sex = sex;     }

    public static void save_Entity(Object obj) {

        try { //            Class c1 = obj.getClass();//设置新值 //            Field field = c1.getDeclaredField("name"); //            field.set(obj, "new Young");             // Class1 cl1 = new Class1();             // Class cl2 = Class1.class;             // Class1 cl3 =cl1.getClass();             // Class cl4=Class.forName(package.class);             String attr;             String val;             int modifer;             String modiferName;

            Class c = obj.getClass();             Field[] fs = c.getDeclaredFields();             for (Field f : fs) {                 modifer = f.getModifiers();                 modiferName = Modifier.toString(modifer);                 attr = f.getName();       //属性名 顺序按照POJO类中的private属性顺序                 val = (String) f.get(obj);//属性值                 System.out.println("Modifier:" + modiferName + "\tAttr:" + attr + "\tVal:" + val);             }         } catch (Exception ex) {             System.out.println(ex.getMessage());         }     }

    public static String getStr(String str) {         System.out.println("调用返回值:" + str);         return str;     }     /////////////////

    public static void main(String[] args) {         Entity entity = new Entity();         entity.setName("Young");         entity.setSex("男");         entity.setAge("25");

        //new Entity().save_Entity(entity);         Method[] ms = Entity.class.getDeclaredMethods();         String methodName;         int modifier;         String modifierName;

        for (Method m : ms) {             methodName = m.getName();             System.out.println(methodName);             try {                 if (methodName.startsWith("save")) {                     m = Entity.class.getDeclaredMethod(methodName, new Class[]{Object.class});//声明方法参数类型                     m.invoke(entity, entity);

                    modifier = m.getModifiers();                     modifierName = Modifier.toString(modifier);                     System.out.println("Method Modifier:" + modifierName);    //方法访问类型                     System.out.println("Method return type:" + m.getReturnType().getName());//方法返回值类型                     System.out.print("Params:");                     for (Class cls : m.getParameterTypes()) {      //方法属性值类型                         System.out.print(cls.getName() + ",");                     }                     System.out.println("");                 } else { //                    m = Entity.class.getMethod("getStr", String.class); //                    String s=(String)m.invoke(entity, "Invoke Msg"); //                

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年11月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档