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)]
