驗證、擷取、生成 字元
阿新 • • 發佈:2020-08-20
註解
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