首页

关于instinct源码包定义ClassEdge类加载class类、类实例化、获取类容器方法字段属性方法源码说明

标签:instinct,ClassEdge,instinct,googlecode,加载类,类实例化,加载容器,Constructor     发布时间:2018-07-07   

一、前言

关于instinct源码包com.googlecode.instinct.internal.edge.java.lang.reflect.ClassEdge、com.googlecode.instinct.internal.edge.java.lang.reflect.ClassEdgeImpl定义接口及实现类,实现字符串类加载forName、指定类class实例化newInstance、指定类class获取加载容器getConstructor、获取类指定getMethod方法Method、获取getDeclaredField/getField类属性Field方法实现,参见下面源码说明部分。

二、源码说明

1.ClassEdge接口

package com.googlecode.instinct.internal.edge.java.lang.reflect;@b@@b@import java.lang.reflect.Constructor;@b@import java.lang.reflect.Field;@b@import java.lang.reflect.Method;@b@@b@public abstract interface ClassEdge@b@{@b@  public abstract Class<?> forName(String paramString);@b@@b@  public abstract <T> T newInstance(Class<T> paramClass);@b@@b@  public abstract <T> Constructor<T> getConstructor(Class<T> paramClass, Class<?>[] paramArrayOfClass);@b@@b@  public abstract <T> Constructor<T> getDeclaredConstructor(Class<T> paramClass, Class<?>[] paramArrayOfClass);@b@@b@  public abstract <T> Method getMethod(Class<T> paramClass, String paramString, Class<?>[] paramArrayOfClass);@b@@b@  public abstract <T> Method getDeclaredMethod(Class<T> paramClass, String paramString, Class<?>[] paramArrayOfClass);@b@@b@  public abstract <T> Field getDeclaredField(Class<T> paramClass, String paramString);@b@@b@  public abstract <T> Field getField(Class<T> paramClass, String paramString);@b@}

2.ClassEdgeImpl实现类

package com.googlecode.instinct.internal.edge.java.lang.reflect;@b@@b@import com.googlecode.instinct.internal.edge.EdgeException;@b@import java.lang.reflect.Constructor;@b@import java.lang.reflect.Field;@b@import java.lang.reflect.Method;@b@@b@public final class ClassEdgeImpl@b@  implements ClassEdge@b@{@b@  public Class<?> forName(String className)@b@  {@b@    try@b@    {@b@      return Class.forName(className);@b@    } catch (ClassNotFoundException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@@b@  public <T> T newInstance(Class<T> cls) {@b@    try {@b@      return cls.newInstance();@b@    } catch (InstantiationException e) {@b@      throw new EdgeException(e);@b@    } catch (IllegalAccessException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@@b@  public <T> Constructor<T> getConstructor(Class<T> cls, Class<?>[] parameterTypes) {@b@    try {@b@      return cls.getConstructor(parameterTypes);@b@    } catch (NoSuchMethodException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@@b@  public <T> Constructor<T> getDeclaredConstructor(Class<T> cls, Class<?>[] parameterTypes) {@b@    try {@b@      return cls.getDeclaredConstructor(parameterTypes);@b@    } catch (NoSuchMethodException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@@b@  public <T> Method getMethod(Class<T> cls, String methodName, Class<?>[] parameterTypes) {@b@    try {@b@      return cls.getMethod(methodName, parameterTypes);@b@    } catch (NoSuchMethodException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@@b@  public <T> Method getDeclaredMethod(Class<T> cls, String methodName, Class<?>[] parameterTypes) {@b@    try {@b@      return cls.getDeclaredMethod(methodName, parameterTypes);@b@    } catch (NoSuchMethodException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@@b@  public <T> Field getDeclaredField(Class<T> cls, String fieldName) {@b@    try {@b@      return cls.getDeclaredField(fieldName);@b@    } catch (NoSuchFieldException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@@b@  public <T> Field getField(Class<T> cls, String name) {@b@    try {@b@      return cls.getField(name);@b@    } catch (NoSuchFieldException e) {@b@      throw new EdgeException(e);@b@    }@b@  }@b@}
<<推荐下载>>
  • (1) 阿里巴巴Java开发手册8种不同版本
  • (2) Web前端开发视频教程
  • (3) 30+明星讲师PPT课件分享一线大厂架构实战经验
  • (4) java开发_架构篇_视频资源分享_v2208
  • (5) java开发_高级篇_视频资源分享_v2208
  • (6) java开发_进阶篇(中级)_视频资源分享_v2208
  • (7) java开发_入门篇_视频资源分享_v2208
  • (8) 微信小程序开发视频1+167源码+实战demo等下载
  • (9) easy-shopping电子商务java源码(附脚本和安装文档说明)下载
  • (10) java常用的72份知名实用的电子书下载
  • (11) java开发性能优化资料整理大全(8份电子文档+3份实战优化)下载
  • (12) 9个常用的算法设计资料和100以上视频课件内容下载
  • (13) vue开发必备常用手册16件下载
  • (14) 21种不同技术集群方案(es、flink、redis、nginx、zk、lvs、kafka、mysql、k8s等)参考资料下载
  • (15) 20种技术代码规范(js/java/dba/阿里/华为/oracle/mysql等)参考资料下载
  • (16) 微服务五套资料(0-1,架构设计,springcloud,nacos等)下载
  • (17) 架构师(28知识图谱+3套简历模板+6套架构实战文档等)完整资料整理下载
  • (18) 大数据18套实战基础知识+8套简历模板下载
  • (19) 并发编程全套(7套+阿里巴巴+亿级实战等)实战资料下载
  • (20) Kafka九套学习整理知识点全套(面试+笔记+代码api+命令+容备等)资料下载
  • (21) java全套9个不同方向类型的面试题(基础+核心+大厂+架构师+近万套题库等)下载
  • (22) JAVA开发常用API帮助文档大全(超52种以上技术资料,高手必备)下载
  • (23) springcloud超详细139件全套学习实战资料( 视频课件+源码demo+文档资料等)下载
  • 更多推荐>>
  • <<热门文章>>