forked from liangrui1988/java-admin
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
59 lines (49 loc) · 2.06 KB
/
Copy pathMain.java
File metadata and controls
59 lines (49 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.rui.pro1.vail.ssist;
//import java.lang.annotation.Annotation;
import java.util.Set;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtField;
import javassist.CtMethod;
import javassist.NotFoundException;
import javassist.bytecode.AnnotationsAttribute;
import javassist.bytecode.FieldInfo;
import javassist.bytecode.MethodInfo;
import javassist.bytecode.annotation.Annotation;
import javassist.bytecode.annotation.StringMemberValue;
import org.hibernate.validator.constraints.Length;
import org.junit.Test;
public class Main {
public static void main(String[] args) {
System.out.println("ddd");
}
@Test
public void ReadTest() throws NotFoundException{
ClassPool pool = ClassPool.getDefault();
//获取要修改的类的所有信息
CtClass ct = pool.get("com.rui.pro1.vail.ssist.CollectionBase");
//获取类中的方法
CtMethod[] cms = ct.getDeclaredMethods();
//获取第一个方法(因为只有一个方法)
CtMethod cm = cms[0];
System.out.println("方法名称====" + cm.getName());
//获取方法信息
MethodInfo methodInfo = cm.getMethodInfo();
//获取类里的em属性
CtField cf = ct.getField("em");
//获取属性信息
FieldInfo fieldInfo = cf.getFieldInfo();
System.out.println("属性名称===" + cf.getName());
//获取注解属性
AnnotationsAttribute attribute = (AnnotationsAttribute) fieldInfo.getAttribute(AnnotationsAttribute.visibleTag);
System.out.println("attribute:"+attribute);
//获取注解
Annotation annotation = attribute.getAnnotation("org.hibernate.validator.constraints.Length");
System.out.println("annotation:"+annotation);
//获取注解的值
Set set=annotation.getMemberNames();
System.out.println(set);
String text =((StringMemberValue) annotation.getMemberValue("max")).getValue() ;
System.out.println("注解名称===" + text);
}
}