1. 程式人生 > 其它 >我是如何拿到阿里、網易雙offer的?再不瞭解你就out啦

我是如何拿到阿里、網易雙offer的?再不瞭解你就out啦

Annotation的作用:

可以被其他程式(比如編譯器)讀取

package com.ren.annotation;

public class Test01 {
    //@Override 重寫的註解
    @Override
    public String toString() {
        return super.toString();
    }
}

"@註釋名"

Annotation可以附加在package,class,method,field等上面,相當於給他們添加了額外的輔助資訊,我們可以通過反射機制程式設計實現對這些元資料的訪問。

註解還有檢查和約束的功能。

一:內建註解

1.@Override

2.@Deprecated

3.@SuppressWarnings(可以放入引數的註解)

實現:

package com.ren.annotation;

import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("all")//鎮壓
public class Test01 {
    //@Override 重寫的註解
    @Override
    public String toString() {
        return super.toString();
    }
    //@Deprecated  不推薦程式設計師使用,但是可以使用,或者存在更好的方式
@Deprecated public static void test(){ System.out.println("Deprecated"); } //@SuppressWarning 鎮壓警告 @SuppressWarnings("all") public void test02(){ List list = new ArrayList(); } public static void main(String[] args) { test(); } }

二:元註解 meta-annotation

作用:負責註解其他註解

1.@Target*

2.@Retention*

3.@Documented

4.@Inherited

實現:

package com.ren.annotation;

import java.lang.annotation.*;

@MyAnnotation
public class Test02 {
    @MyAnnotation
    public void test(){

    }

}
//定義一個註解
//Target  表示我們的註解可以用在哪些地方
@Target(value = {ElementType.METHOD,ElementType.TYPE})

//Retention  表示我們的註解在什麼地方還有效
//  runtime>class>sources
@Retention(value = RetentionPolicy.RUNTIME)

//Documented  表示是否將我們的註解生成在JAVAdoc中
@Documented

//Inherited  子類可以繼承父類的註解
@Inherited
@interface MyAnnotation{

}

三:自定義註解

@interface

實現:

package com.ren.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

public class Test03 {
    //註解可以顯示賦值,如果沒有預設值,我們就必須給註解賦值
    @MyAnnotation2(age = 18,name = "ren",schools = {"鄭州輕工業大學","鄭州大學"})
    public void test(){

    }
    @MyAnnotation3("任子碩")
    public void test2(){

    }
}
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    //註解的引數:引數型別 + 引數名 ();
    String name() default "";
    int age();
    int id() default -1;//如果預設值為-1,代表不存在.indexof,如果找不到就返回-1
    String[] schools() default {"ren","jia"};
}
@interface MyAnnotation3{
    String value();//只有一個值 可以不加比如 name =
}