boolean hasAnnotation = TestAnnotationMain.class.isAnnotationPresent(AnnotationTest.class); if (hasAnnotation) { AnnotationTest annotation = TestAnnotationMain.class.getAnnotation(AnnotationTest.class); System.out.println(annotation.name()); } }
}
![](https://upload-images.jianshu.io/upload_images/3012005-037c41da49c434e1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp) 如果我们想给一个类的属性进行赋值可以这么做 1.创建一个注解如下
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotationTest1 {
String value(); //value来定义
}
2.引用该主解
public class Test {
@AnnotationTest1(value = "小云") //引用注解进行赋值 public String name;
}
3.测试
public class TestAnnotation1Main {
public static void main(String[] args) { try { Field name = Test.class.getDeclaredField("name");//该该类的字段 name.setAccessible(true); AnnotationTest1 annotationTest1 = name.getAnnotation(AnnotationTest1.class);//获取该字段的注解 if (annotationTest1 != null) { System.out.println(annotationTest1.value()); //输出值 } } catch (NoSuchFieldException e) { e.printStackTrace(); } }
}
> 获取方法上的注解类 如AnnotationTest2
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AnnotationTest2 {
//todo无任何方法或者属性
}
public class Test { @AnnotationTest1(value = "小云") public String name; @AnnotationTest2 //目的获取该AnnotationTest2 public void fun() { System.out.println("方法执行"); } } ``` 获取 ``` public class TestAnnotation1Main { public static void main(String[] args) { try { Field name = Test.class.getDeclaredField("name"); //获取该类的声明字段 name.setAccessible(true); AnnotationTest1 annotationTest1 = name.getAnnotation(AnnotationTest1.class);//获取该字段的注解 if (annotationTest1 != null) { System.out.println(annotationTest1.value()); //输出值 } Method fun = Test.class.getDeclaredMethod("fun"); if (fun != null) { Annotation[] annotations = fun.getAnnotations(); for (int i = 0; i < annotations.length; i++) { System.out.println(annotations[i].annotationType().getSimpleName()); } } } catch (NoSuchFieldException | NoSuchMethodException e) { e.printStackTrace(); } } } ``` 举例 ``` @Documented @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { } public class MyTest { //进行获取注解方法的全部数据 @MyAnnotation public void mytestLoad() { System.out.println("测试加载"); } @MyAnnotation public void mytestRequest() { System.out.println("测试请求"); } @MyAnnotation public void mytestProgress() { System.out.println("测试进度"); } @MyAnnotation public void mytestError() { System.out.println(1 ); } ///该方法不执行 public void mytestNoAnno(){ System.out.println("没有注解的方法"); } } public class TestMain { public static void main(String[] args) { MyTest myTest = new MyTest(); Method[] methods = myTest.getClass().getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { Method method = methods[i]; if (method.isAnnotationPresent(MyAnnotation.class)) { try { method.setAccessible(true); method.invoke(myTest, null);//调用该类的注解方法 } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } System.out.println("==================输出完成!===================="); } } ``` ![](https://www.www.zyiz.net/i/ll/?i=img_convert/cff9431623e52f7a304f34d42aca7e46.png) 下载 == [**Annotation案例代码下载**]( ) 总结 == 我们在开发中长见的注解如下: | 常用注解 | 解释 | | --- | --- | | @Override | 方法重写 | | @SuppressWarnings | 提示警告 | > **Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg > 提取码:2p8n** # 总结 机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。 对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。 你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容: **请转发本文支持一下** **[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】]( )** ![](https://www.www.zyiz.net/i/ll/?i=img_convert/02c18b75c2a584cdeecdc513d02b2912.png) 悉求职流程,做好充分的准备,把一些可预见的事情做好。 对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。 你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容: **请转发本文支持一下** **[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】]( )** [外链图片转存中...(img-tbr9xqUM-1631409345785)] ![](https://www.www.zyiz.net/i/ll/?i=img_convert/b49693fb56c3efcdf2cdf7b3b5cfbca4.png)