zoukankan      html  css  js  c++  java
  • Java 映射机制

    package wangChaoPA实习工作练习.com.反射;

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

    public class TestReflect
    {
        // 获取到某个反射类中的所有的方法
        public static Method[] getMethods(Class ownerClass)
        {
            // 只获取该类中所有访问权限的方法(不包含的父类当中的方法)
            Method[] methods = ownerClass.getDeclaredMethods();
            for (int i = 0; i < methods.length; i++)
            {
                System.out.println(methods[i]);
            }
            return methods;
        }

        // 获取到某个反射类中的所有的属性
        public static Field[] getProperty(Class ownerClass)
        {
            // ownerClass.getFields();只获取public访问权限的字段(包含父类中的字段)
            // 只获取该类中所有访问权限的字段(不包含的父类当中的字段)
            Field[] fields = ownerClass.getDeclaredFields();
            for (int i = 0; i < fields.length; i++)
            {
                System.out.println(fields[i]);
            }
            return fields;
        }

        // 获取反射类的某个public属性值
        public static Object getProperty(Object owner, String fieldName)
                throws Exception
        {
            // 获取到对象的所属类
            Class ownerClass = owner.getClass();
            // 获取到该类的某个属性
            Field field = ownerClass.getField(fieldName);
            // 获取到某个对象的特定属性
            Object property = field.get(owner);
            System.out.println(fieldName + "的属性值:" + property.toString());
            return property;
        }

        // 执行反射类中某个方法
        public static Object invokeMethod(Object owner, String methodName,
                Object[] agrs) throws Exception
        {
            Class ownerClass = owner.getClass();
            Method method = ownerClass.getMethod(methodName, null);
            Object result = method.invoke(owner, agrs);
            System.out.println(result);
            return result;
        }

        public static void main(String[] args) throws Exception
        {
            Class modelClass = Class.forName("wangChaoPA实习工作练习.com.反射.Model");
            Object classObj = modelClass.newInstance();
            getProperty(modelClass);
            getMethods(modelClass);
            invokeMethod(classObj, "getAccount", null);
            getProperty(classObj, "age");
        }
    }

  • 相关阅读:
    c# 文件IO操作 StreamReader StreamWriter Split 使用
    UE4材质初探
    栈溢出 stackoverflow 的原因及解决办法
    UE4高级功能-初探超大无缝map的实现LevelStream
    为什么Unreal 4引擎能轻易实时渲染出vray要花半天才能渲染出的场景
    SSAO
    Unity3D 游戏贴图(法线贴图,漫反射贴图,高光贴图)
    巨人纪学峰 未来网游发展趋势是社区化
    Ogre中级教程
    国内自主研发的游戏引擎一览
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/7341332.html
Copyright © 2011-2022 走看看