boolean hasAnnotation = TestAnnotationMain.class.isAnnotationPresent(AnnotationTest.class);
if (hasAnnotation) {
AnnotationTest annotation = TestAnnotationMain.class.getAnnotation(AnnotationTest.class);
System.out.println(annotation.name());
}
}
}

如果我们想给一个类的属性进行赋值可以这么做
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("==================输出完成!====================");
}
}
```

下载
==
[**Annotation案例代码下载**](
)
总结
==
我们在开发中长见的注解如下:
| 常用注解 | 解释 |
| --- | --- |
| @Override | 方法重写 |
| @SuppressWarnings | 提示警告 |
> **Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg
> 提取码:2p8n**
# 总结
机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。
对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。
你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:
**请转发本文支持一下**
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**

悉求职流程,做好充分的准备,把一些可预见的事情做好。
对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。
你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:
**请转发本文支持一下**
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**
[外链图片转存中...(img-tbr9xqUM-1631409345785)]
