每一个使用SimpleDateFormat对象进行日期-时间进行format和parse方法的时候就创建一个新的SimpleDateFormat对象,用完就销毁即可!
Java反射操作私有成员变量 Class can not access a member with modifiers “private”
通过反射操作类的私有(private)成员变量时,需要通过field.setAccessible(true)将字段设置为可以访问的。
AnnotationTest
public class AnnotationTest { @MyMessage(name="a", num = 10, desc = "参数a") private int a; @MyMessage(name = "test", desc = "测试方法test") public void test() { System.out.println("test"); } public void setA(int a){ this.a = a; } }MyMessage
import java.lang.annotation.*; @Target({ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface MyMessage { String name() default "sam"; int num() default 0; String desc(); }MyMessageProcessor
import java.lang.reflect.Field; import java.lang.reflect.Method; public class MyMessageProcessor { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { try { //加载annotationTest.class类 Class clazz = MyMessageProcessor.class.getClassLoader().loadClass("com.xiaohongshu.fls.monkeyking.xh.AnnotationTest"); //获取属性 Field[] fields = clazz.getDeclaredFields(); //遍历属性 for (Field field : fields) { MyMessage myMessage = field.getAnnotation(MyMessage.class); System.out.println("name:" + myMessage.name() + " num:" + myMessage.num() + " desc:" + myMessage.desc()); Class c =Class.forName("com.xiaohongshu.fls.monkeyking.xh.AnnotationTest"); //利用反射获取value if(myMessage.name().equals("a")) { AnnotationTest aaaaa = new AnnotationTest(); aaaaa.setA(1000); Field field1 = aaaaa.getClass().getDeclaredField("a"); field1.setAccessible(true); System.out.println(field1.get(aaaaa)); } } //获取类中的方法 Method[] methods = clazz.getMethods(); //遍历方法 for (Method method : methods) { //判断方法是否带有MyMessage注解 if (method.isAnnotationPresent(MyMessage.class)) { // 获取所有注解 method.getDeclaredAnnotations(); // 获取MyMessage注解 MyMessage myMessage = method.getAnnotation(MyMessage.class); System.out.println("name:" + myMessage.name() + " num:" + myMessage.num() + " desc:" + myMessage.desc()); } } } catch (ClassNotFoundException e) { e.printStackTrace(); } } }参考网址 1.https://www.cnblogs.com/softidea/p/5705297.html 2.https://stackoverflow.com/questions/22877350/how-to-extract-ip-address-in-spring-mvc-controller-get-call 3.https://blog.csdn.net/weixin_38810239/article/details/79941964