18.3.2从Class上获取信息(注解)
package d18_3_1;
/**
* Class类上所包含的注解
*
* getAnnotation(Class annotationClass) 获取该元素上指定的类型的注解
* getAnnotations():返回此元素上存在的所有注解
* getDeclaredAnnotations():返回直接存在于此元素上的所有注解
*/
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.FIELD)
public class ClassInfo4 { private String pwd; @XmlElement(name = "ID")
private int id; @XmlAttribute
@XmlElement
private String name; /**
* 1、获取属性上的指定类型的注解
* 2、获取属性上的指定类型的注解的指定方法
* 3、获取属性上的所有注解
* 4、获取类上的所有注解
* 5、获取方法上的所有注解
*
* @author 2014-11-10 下午02:18:24
* @param args
*/
@SuppressWarnings("rawtypes")
public static void main(String[] args) { Field[] fields = ClassInfo4.class.getDeclaredFields(); for (Field f : fields) {
String filedName = f.getName();
System.out.println("属性名称:【" + filedName + "】");
// 1、获取属性上的指定类型的注解
Annotation annotation = f.getAnnotation(XmlElement.class); // 有该类型的注解存在
if (annotation != null) {
// 强制转化为相应的注解
XmlElement xmlElement = (XmlElement) annotation;
// 3、获取属性上的指定类型的注解的指定方法
// 具体是不是默认值可以去查看源代码
if (xmlElement.name().equals("##default")) {
System.out.println("属性【" + filedName + "】注解使用的name是默认值: "
+ xmlElement.name());
} else {
System.out.println("属性【" + filedName + "】注解使用的name是自定义的值: "
+ xmlElement.name());
}
} // 2、获取属性上的所有注解
Annotation[] allAnnotations = f.getAnnotations();
for (Annotation an : allAnnotations) { Class annotationType = an.annotationType(); System.out.println("属性【" + filedName + "】的注解类型有: "
+ annotationType);
}
System.out.println("----------华丽的分割线--------------");
} // 4、获取类上的所有注解
Annotation[] classAnnotation = ClassInfo4.class.getAnnotations(); for (Annotation cAnnotation : classAnnotation) {
Class annotationType = cAnnotation.annotationType();
System.out.println("User类上的注解有: " + annotationType);
} System.out.println("----------华丽的分割线--------------"); // 5、获取方法上的所有注解
Method method;
try {
method = ClassInfo4.class.getMethod("setPwd", String.class); Annotation[] methodAnnotations = method.getAnnotations(); for (Annotation me : methodAnnotations) {
Class annotationType = me.annotationType();
System.out.println("setPwd方法上的注解类型有: " + annotationType);
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
} @XmlElement
public void setPwd(String pwd) {
this.pwd = pwd;
} public String getPwd() {
return pwd;
}
}
18.3.2从Class上获取信息(注解)的更多相关文章
- 18.3.2从Class上获取信息(构造器)
获取构造器信息 package d18_3_1; import java.lang.reflect.Constructor; import java.util.Arrays; /** * 获取构造器的 ...
- 18.3.2从Class上获取信息(方法)
package d18_3_1; import java.lang.reflect.Method; import java.util.Arrays; /** * 获取Class对应类所包含的方法的四个 ...
- 18.3.2从Class上获取信息(属性)
package d18_3_1; import java.lang.reflect.Field; import java.util.Arrays; /** * 获取Class对应类所包含的属性的四个方 ...
- 18.3.2从Class上获取信息(内部类接口等)
内部类 接口.枚举.注释类型
- jquery通过AJAX从后台获取信息并显示在表格上的类
前一阵我写了:<jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中.>现在,我把他们处理了一下,不需要每次写代码了: 具体代码如下: //获取数据并显示数据表格 funct ...
- jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中
不想用Easyui的样式,但是想要他的表格功能,本来一开始是要到网上找相关插件的,但是没找到就开始自己写,没想到这么简单. 后台代码:(这个不重要) public ActionResult GetDi ...
- (转)Python新手写出漂亮的爬虫代码2——从json获取信息
https://blog.csdn.net/weixin_36604953/article/details/78592943 Python新手写出漂亮的爬虫代码2——从json获取信息好久没有写关于爬 ...
- (转)Python新手写出漂亮的爬虫代码1——从html获取信息
https://blog.csdn.net/weixin_36604953/article/details/78156605 Python新手写出漂亮的爬虫代码1初到大数据学习圈子的同学可能对爬虫都有 ...
- SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework
1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, obj ...
随机推荐
- OpenCV2.3.1在CentOS6.5下的安装
安装的linux版本号是centos6.5.选择的是opencv2.3.1.不是非常新的版本号. 由于在安装opencv2.4.9的时候.make的过程中出现了问题. 一:安装依赖包 依赖包用yum安 ...
- Hihocoder #1527 : 快速乘法 DP
时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 在写代码时,我们经常要用到类似 x × a 这样的语句( a 是常数).众所周知,计算机进行乘法运算是非常慢的,所以我们需 ...
- JVM的CPU资源占用过高问题的排查
互联网后端架构 https://mp.weixin.qq.com/s/LiqAy2DikbmZzqogb5XRdA JVM的CPU资源占用过高问题的排查 互联网后端架构 今天 上午线上某应用的一台J ...
- because joins aren’t as important.
“MongoDB wasn’t designed in a lab. We built MongoDB from our own experiences building large-scale, h ...
- 正则表达式pattern的匹配格式
0> 匹配 -------------------------------------------------------------------------------- (pattern) ...
- 提升自身的iOS编程水平 (转载)
阅读博客 在现在这个碎片化阅读流行的年代,博客的风头早已被微博盖过.而我却坚持写作博客,并且大量地阅读同行的iOS开发博客.博客的文章长度通常在3000字左右,许多iOS开发知识都至少需要这样的篇幅才 ...
- codeforces A. Kitahara Haruki's Gift 解题报告
题目链接:http://codeforces.com/problemset/problem/433/A 题目意思:给定 n 个只由100和200组成的数,问能不能分成均等的两份. 题目其实不难,要考虑 ...
- html5--6-14 CSS3中的颜色表示方式
html5--6-14 CSS3中的颜色表示方式 实例 每个参数 (red.green 以及 blue) 定义颜色的强度,可以是介于 0 与 255 之间的整数,或者是百分比值(从 0% 到 100% ...
- 非常精彩的Silverlight 2控件样式
概述 大家是否觉的现在Silverlight 2提供的默认的控件不能满足自己的要求?好在Silverlight的控件可以运用皮肤,微软Silverlight控件的设计者的主管Corrina开发了几套非 ...
- 如何在chrome上设置Bing为默认搜索引擎,在设置中无法直接设置