1. 程式人生 > 實用技巧 >驗證、擷取、生成 字元

驗證、擷取、生成 字元

註解

1. 什麼是註解?

JDK5.0開始引入,Annotation的作用:不是程式本身,可以對程式做出解釋;可以被其他程式讀取

2. Annotation的格式:

@註釋名,還可以新增一些引數值
例如:@SuppressWarning(value="unchecked")

3. 使用範圍

可以附加在package、class、method、field等上面,相當於給他們添加了額為的輔助資訊

4. 內建註解

  • @Override 只適用於修辭方法,表示一個方法宣告打算重寫超類中的另一個方法宣告
  • @Deprecated 可以用於修辭方法,屬性,類,表示不鼓勵程式設計師使用這樣的元素,通常是以為它很危險或者存在更好的選擇
  • @SuppressWarning 用來抑制編譯時的警告資訊,需要新增一個引數才能正確使用

    @SuppressWarning("all")、
    @SuppressWarning("unchecked")、
    @SuppressWarning(value={"unchecked"、"deprecation"})

5. 元註解

負責註解其他註解,Java定義了4個標準的meta-annotation型別,他們被用來提供對其他annotation型別作說明

  • @Target(value=ElementType.METHOD,ElementType.TYPE) 用於描述註解的使用範圍
  • @Retention 表示需要在什麼級別儲存該註釋資訊,用於描述註解的生命週期(runtime > class > sources)
  • @Documented 說明該註解將被包含在javadoc中
  • @Inherited 說明子類可以繼承父類中的該註解

6. 自定義註解

使用@Interface自定義註解

註解的引數:引數型別 + 引數名();
註解可以顯示賦值,如果沒有預設值,我們就必須給註解賦值

反射

反射機制允許程式在執行期藉助於Reflection API取得任何類的內部資訊,並能直接操作任意物件的內部屬性及方法。

獲得反射物件

Class c = Class.forName("java.lang.String")

在Object類中定義了一下的方法,此方法將被所有子類繼承

public final Class getClass()

此類是Java反射的源頭,可以通過物件反射求出類的名稱

1. 獲得Class類的幾種方式

  • 通過物件獲得

    Class c1 = person.getClass();

  • forname獲得

    Class c2 = Class.forName();

  • 通過類名.class獲得

    Class c3 = Student.class;

  • 基本內建型別的包裝類都有一個Type屬性

    Class c4 = Integer.TYPE

  • 獲得父類屬性

    Class c5 = c1.getSuperclass();

2. 所有型別的Class物件

Class c1 = Object.class;
Class c1 = Comparable.class;
Class c1 = String[].class;
Class c1 = int[][].class;
Class c1 = Override.class;
Class c1 = ElementType.class;
Class c1 = Integer.class;
Class c1 = void.class;
Class c1 = Class.class;

只要元素型別與維度一樣,就是同一個class