---------------------- ASP.Net+Unity開發、 .Net教育訓練、期待與您交流! ----------------------
一、JavaBean
JavaBean是一種特殊的Java類,主要用于傳遞資料資訊,這種java類中的方法主要用于通路私有的字段,且方法名符合某種命名規則。
如果要在兩個子產品之間傳遞多個資訊,可以将這些資訊封裝到一個JavaBean中,這種JavaBean的執行個體對象通常稱之為值對象(Value Object,簡稱VO)。這些資訊在類中用私有字段來存儲,如果讀取或設定這些字段的值,則需要通過一些相應的方法來通路。
JavaBean的屬性是根據其中的setter和getter方法來确定的,而不是根據其中的成員變量。
使用JavaBean的優點:
1、JavaEE工程開發,需要使用。
2、JDK中提供了對JavaBean進行操作的一些API,這套API就稱為内省。用内省這套api操作JavaBean比用普通類的方式更友善。
二、内省
用于對javaBean進行操作,javaBean特殊的java類
1、用内省方式對javaBean的屬性進行set, get 操作
Person p = new Person("zhangsan",23);
PropertyDescriptor pd = new PropertyDescriptor("name",p.getClass());
Method methodGetName = p.getReadMethod();
Object retVal = methodGetName.invoke(p);
Method methodSetName = p.getWriteMethod();
Object retVal = methodGetName.invoke(p,"zhang");
2、使用BeanUtils工具包操作javaBean
需要導入BeanUtils包以及第三方jar包(log包)
好處:(1)類型自動轉換,使用String
(2)支援屬性的級聯 Data data = new Data();
data.time作為屬性來用
(3)BeanUtils可以操作map
sop(BeanUtils.setProperty(p,"age"),"23");//參數為String
sop(BeanUtils.getProperty(p,"age"));
PropertyUtils不進行類型轉換
三、注釋(Annotation)
注解相當于一種标記,在程式中加了注解就等于為程式打上了某種标記。
常用的三個:@Override @Deprecated @SuppressWarnings
注意:
1、也叫中繼資料。相當于一種辨別
2、作用分類
(1)編寫文檔:通過代碼裡标示的中繼資料生成文檔(生成doc文檔)
(2)代碼分析:通過中繼資料對代碼進行分析(使用反射)
(3)編譯檢查:通過标示的中繼資料讓編譯器實作基本的編譯檢查(Override)
3、使用位置
包 類 成員變量 方法 局部變量
4、注解相當于一種特殊的類
@Override: @Override就是用來指定方法覆寫的,它可以強制一個子類必須要覆寫父類的方法。如下程式使用@Override指定子類Apple的info方法必須重寫父類方法。 @Deprecated: @Deprecated用于表示某個程式元素已過時,當其他程式使用已過時的類、方法時,編譯器将會給出警告。 如:
class A {
//定義old方法已過時
@Deprecated
public void old(){
System.out.println("過時方法...");
}
}
public class Test{
public static void main(String[] args){
//下面使用old方法将會被編譯器警告
new A().old();
}
}
@SuppressWarnings @SuppressWarnings訓示被Annotation辨別的程式元素取消顯示指定的編譯器警告。 例如,程式中使用沒有泛型限定的集合将會引起編譯器警告,為了避免這種編譯器警告,可以用@SuppressWarnings取消編譯器警告。
//關閉整個類裡的編譯器警告
@SuppressWarnings("unchecked")
public class Demo{
public static void main(String[] args){
List list = new ArrayList();
}
}
注解的屬性:
<span style="font-size:18px;">@Retention(RetentionPolicy.RUNTIME)//元注解 ,三個階段
@Interface A{
String color() default "red";
Strng value();//value()屬性很特殊
int[] arr() default {1,2,2};
}
@A(color="red",value="set",arr={1,2,3})//設定,如果隻有value屬性需要設定時,可以把=号省略@A("setValue")
class C{
if(C.class.isAnnotationPresent(A.class)){
A ann = (A)C.class.getAnnotation(A.class);
sop(ann.color());//使用
sop(ann.value());//使用
sop()
}
}</span>
---------------------- ASP.Net+Unity開發、 .Net教育訓練、期待與您交流! ----------------------詳細請檢視: www.itheima.com