Java反射方法总结
1、得到构造器的方法
- Constructor getConstructor(Class[] params) -- 获得使用特殊的参数类型的公共构造函数,
- Constructor[] getConstructors() -- 获得类的所有公共构造函数
- Constructor getDeclaredConstructor(Class[] params) -- 获得使用特定参数类型的构造函数(与接入级别无关)
- Constructor[] getDeclaredConstructors() -- 获得类的所有构造函数(与接入级别无关)
2、获得字段信息的方法
- Field getField(String name) -- 获得命名的公共字段
- Field[] getFields()--获得类的所有公共字段
- Field getDeclaredField(String name) --获得类声明的命名的字段
- Field[] getDeclaredFields()-- 获得类声明的所有字段
3、获得方法信息的方法
- Method getMethod(String name, Class[] params) -- 使用特定的参数类型,获得命名的公共方法
- Method[] getMethods() -- 获得类的所有公共方法
- Method getDeclaredMethod(String name, Class[] params) -- 使用特写的参数类型,获得类声明的命名的方法
- Method[] getDeclaredMethods() -- 获得类声明的所有方法
4:获取注解的方法
1. Annotation[] annotations = (Annotation[]) class1.getAnnotations();//获取class对象的所有注解
2. Annotation annotation = (Annotation) class1.getAnnotation(Deprecated.class);//获取class对象指定注解
3. Type genericSuperclass = class1.getGenericSuperclass();//获取class对象的直接超类的
4. Type Type[] interfaceTypes = class1.getGenericInterfaces();//获取class对象的所有接口的type集合
5:其他扩展方法
- boolean isPrimitive = class1.isPrimitive();//判断是否是基础类型
- boolean isArray = class1.isArray();//判断是否是集合类
- boolean isAnnotation = class1.isAnnotation();//判断是否是注解类
- boolean isInterface = class1.isInterface();//判断是否是接口类
- boolean isEnum = class1.isEnum();//判断是否是枚举类
- boolean isAnonymousClass = class1.isAnonymousClass();//判断是否是匿名内部类
- boolean isAnnotationPresent = class1.isAnnotationPresent(Deprecated.class);//判断是否被某个注解类修饰
- String className = class1.getName();//获取class名字 包含包名路径
- Package aPackage = class1.getPackage();//获取class的包信息
- String simpleName = class1.getSimpleName();//获取class类名
- int modifiers = class1.getModifiers();//获取class访问权限
- Class<?>[] declaredClasses = class1.getDeclaredClasses();//内部类
- Class<?> declaringClass = class1.getDeclaringClass();//外部类
- getSuperclass():获取某类的父类
- getInterfaces():获取某类实现的接口
6. 具有的类型
- ParameterizedType:表示一种参数化的类型,比如Collection< String >
- GenericArrayType:表示一种元素类型是参数化类型或者类型变量的数组类型
- TypeVariable:是各种类型变量的公共父接口
WildcardType:代表一种通配符类型表达式,比如?、? extends Number、? super Integer。(wildcard是一个单词:就是”通配符“)
Java反射方法总结的更多相关文章
- 【译】5. Java反射——方法
原文地址:http://tutorials.jenkov.com/java-reflection/methods.html ====================================== ...
- Java反射-方法(Method)
工作了三年,第二次使用反射! 遇到的问题描述: 多个页面查询后,返回的List中的对象属性为“.00”,页面显示不友好. 查询原因是因为查询数据的SQL为:to_char(a.applyAmount, ...
- Java 反射 方法调用
在使用Java 反射时,对方法的调用,可能碰到最多的问题是,方法的变量如何使用.其实,调用方法的变量全部在参数数组里,不管有多少个参数,你都要把它放在参数数组里,如果是单个非数组参数,则可不使用参数数 ...
- java反射——方法
大家都知道反射技术在Java里面时非常重要的一个技术点,因为Java好多框架的编写都是基于反射的,别的不多说,spring框架里面的IOC就是基于反射实现.那么什么是反射呢?JAVA反射机制是在运行状 ...
- java反射--方法反射的基本操作
方法的反射 1)如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法. 2)方法反射的操作 method.invoke(对象,参数列表). 代码实例: package com.reflec ...
- 【译】7. Java反射——私有字段和私有方法
原文地址:http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html =================== ...
- Java 反射机制学习资料
Java反射——引言 Java反射——Class对象 Java反射——构造函数 Java反射——字段 Java反射——方法 Java反射——Getter和Setter Java反射——私有字段和私有方 ...
- Java反射——引言
Java反射——引言 原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它 ...
- 【译】1. Java反射——引言
原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它可以在运行时检查类.接 ...
随机推荐
- spring boot 加入mail邮件支持
一.添加依赖 <!-- 邮件整合 --> <dependency> <groupId>org.springframework.boot</groupId> ...
- 【bzoj2159】Crash 的文明世界(树形dp+第二类斯特林数)
传送门 题意: 给出一颗\(n\)个结点的树,对于每个结点输出其答案,每个结点的答案为\(ans_x=\sum_{i=1}^ndis(x,i)^k\). 思路: 我们对于每个结点将其答案展开: \[ ...
- Nim 游戏
你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函数,来判断 ...
- 第一个月.day1
1. 编辑器下载 推荐的是hbulider 开发环境 2. 浏览器 推荐chrome 谷歌浏览器学习 3. 建立技术笔记 推荐博客园 Web 本月任务 搭建静态网页. 静态页面:不需要网络请求 ...
- 【linux命令 】文件特殊权限(SUID、SGID、SBIT)
chmod 2770 /home/admins,刚看到这个命令,有点不解,后边770分别表示用户,组,其他人,前面的2不知道代表的是什么意思.百度之后发现2是代表八进制数,也是一种权限,它的三个bit ...
- rpm软件包安装与管理
一.软件包分类 1.软件包分类 源码包 二进制包 2.源码包 2.1 源码包什么样 直接由编程语言写成,没经过编译.类似于java的 .calss 文件,c的 .c文件. [root@love2 ~] ...
- 浅谈Httpmodules
HttpModule是ASP.NET过滤器,可以理解为HTTP请求的必经之地我们只要实现IHttpModule接口,就可以取代HttpModule namespace BookShop.Handler ...
- 基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术-Angel工作室通用权限管理
一.Angel工作室简单通用权限系统简介 AngelRM(Asp.net MVC Web api)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术 ...
- SSM框架之SpringMVC(1)入门程序
SpringMVC(1) 1.三层架构和MVC 1.1. 三层架构 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序 使用Java语言基本上都是开发B/S架构的程序,B ...
- vue之前端鉴权
vue项目前端鉴权方式常用的有以下三种: 1.渲染菜单时控制模块按钮的显示隐藏(不足:直接输入链接仍然可以访问模块) 2.在路由导航守卫中拦截,针对没有权限的模块进行重定向(不足:每次访问模块都需要鉴 ...