1. 程式人生 > 實用技巧 >NC13230 合併迴文子串(區間dp)

NC13230 合併迴文子串(區間dp)

描述

  • Annotation是從JDK5.0開始引入的新技術
  • 不是程式碼,也不是註釋,但是能夠被編譯器讀取識別,起程式說明作用
  • 作用在包、類、介面、屬性和方法上

元註解

元註解的作用就是負責註解其它註解,Java定義了四個meta-annotation型別,它們被用來提供對其它annotation作說明

這些型別和它們支援的類在java.lang.annotation包中可以找到:

  • @Target:用於描述註解的使用範圍(即被描述的註解可以用在什麼地方)
  • @Retention:表示需要在什麼級別儲存該註釋資訊,用於描述註解的生命週期
    • SOURCE<CLASS<RUNTIME
  • @Document:說明該註解將被包含在javadoc中
  • @Inherited:說明子類可以繼承父類中的該註解

內建註解

@Override:定義在java.lang.Override中,此註釋只適用於修辭方法,表示一個方法宣告打算重寫超類中的另一個方法宣告

@Deprecated:定義在java.lang.Deprecated中,此註釋可以用於修辭反覆,屬性,類,表示不鼓勵程式猿使用這樣的元素。通常是因為它很危險或者存在更好的選擇

@SuppressWarnings:定義在java.lang.SuppressWarnings中,用來抑制編譯時的警告資訊。與前兩個註釋不同,該註釋必須加一個引數才能正確使用,這些引數都是已經定義好了的。

自定義註解與反射解釋

public class App {
    @MyAnnotation
    public void test(){}
}
@Target(value = {ElementType.METHOD,ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
@Inherited
@interface MyAnnotation{

}

使用@Interface自定義註解時,自動繼承了java.lang.annotation.Annotation介面

  • @interface用來宣告一個註解,格式:@interface 註解名
  • 其中的每一個方法實際上是聲明瞭一個配置引數
  • 方法的名稱就是引數的名稱
  • 返回值型別就是引數的型別,返回值只能是基本型別(Class,String,enum)
  • 可以通過default來宣告引數的預設值,聲明後可以不賦值
  • 如果只有一個引數成員,一般引數名為value
  • 註解元素必須要有值,我們定義註解元素時,經常使用空字串,0作為預設值