最愛Java
書山有路勤為徑,學海無涯苦作舟
《AspectJ Cookbook》讀書筆記十六: 增強類和編譯器
本章節說明了如何使用靜態橫切技術,以靜態方式使用AspectJ中的方面把行為和接口引入現有的類中。使用這些技術,可以擴展類來實現接口,從新的父類擴展類,引入新方法和屬性,減輕說發生異常的影響,以及繼承多個基類。
一.擴展現有的類
package
com.aspectj;
public
aspect ExtendClassRecipe
{
private
int
MyClass.newVariable
=
20
;
public
int
MyClass.bar(String name)
{
System.out.println(
"
In bar(String name) , name:
"
+
name);
return
this
.newVariable;
}
}
示例中將屬性newVariable和方法bar(String)添加到了MyClass類中。
二.聲明類之間的繼承關系
使用declare parents語句,指定特定的類是從另一個類擴展而來。
以下代碼說明了如何為MyClass類指定新的繼承關系
package
com.aspectj;
public
aspect IntroduceInheritanceRecipe
{
declare parents:MyClass
extends
AnotherClass;
}
三.使用方面實現接口
使用declare parents語句,指定特定的類實現特定的接口。
package
com.aspectj;
public
aspect ImplementInterfaceRecipe
{
declare parents:MyClass
implements
MyInterface;
}
把接口應用于現有類的能力允許通過接口類型的引用那個類的對象,如:
//
Create an instance of MyClass
MyInterface myObject
=
new
MyClass();
//
//
Work with the interface reference
myObject.foo(
1
,
"
Russ
"
);
四.聲明默認的接口實現
package
com.aspectj;
public
aspect DefaultInterfaceImplementationRecipe
{
declare parents:MyClass
implements
MyInterface;
//
public void MyInterface.bar(String name) {
//
System.out.println("bar(String) called on " + this);
//
}
}
五.減輕異常的影響
使用declare soft語句,可以指定一組應該減輕其影響的異常--也就是說,在通過特定連接點選擇的連接點上引發這些異常時,將其轉換成未捕獲的異常。
示例中說明了減輕在void foo()方法上引發的ExcepionA異常的影響,使得該方法的用戶不必關心如何處理這個異常。
package
com.aspectj;
public
aspect SoftExceptionRecipe
{
pointcut callPointCut() : call(
void
MyClass.foo());
declare soft : ExceptionA : callPointCut();
}
六.擴展編譯
分別使用declare error或declare warning語句,指定應該引發編譯器錯誤或警告的條件。
示例說明了如何聲明一個新的錯誤和警告,如果在正在編譯的應用程序內發現指定的條件,編譯器就會引發該錯誤或警告。
package
com.aspectj;
public
aspect CompilaionAdviceRecipe
{
declare error:call(
void
ProtectedAccessClass.setValue(
int
)) :
"
Must only set the ProtectedAccessClass.value from a MyClass object
"
;
declare warning:call(
void
ProtectedAccessClass.getValue()) :
"
Should only be reading ProtectedAccessClass.value from a MyClass object
"
;
}
posted on 2008-08-27 09:31
Brian
閱讀(468)
評論(0)
編輯
收藏
所屬分類:
《AspectJ Cookbook》讀書筆記
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
《AspectJ Cookbook中文版》的附帶示例下載
《AspectJ Cookbook》讀書筆記六: 捕獲通知上的連接點
《AspectJ Cookbook》讀書筆記二十二: 應用企業級方面
《AspectJ Cookbook》讀書筆記二十一: 應用應用程序級方面
《AspectJ Cookbook》讀書筆記二十: 應用類和組件級方面
《AspectJ Cookbook》讀書筆記十九: 實現行為型面向對象設計模式
《AspectJ Cookbook》讀書筆記十八: 實現結構型面向對象設計模式
《AspectJ Cookbook》讀書筆記十七: 實現創建型面向對象設計模式
《AspectJ Cookbook》讀書筆記十六: 增強類和編譯器
《AspectJ Cookbook》讀書筆記十五: 定義方面的關系
公告
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2008年8月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
統計
隨筆 - 52
文章 - 0
評論 - 34
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆分類
《AspectJ Cookbook》讀書筆記(24)
(rss)
EXTJS(1)
(rss)
Jakarta Commons筆記(3)
(rss)
JScript(11)
(rss)
Struts2(4)
(rss)
數據結構與算法(2)
(rss)
自編小工具(1)
(rss)
隨筆檔案
2010年11月 (2)
2010年10月 (2)
2009年10月 (13)
2009年1月 (3)
2008年12月 (1)
2008年8月 (18)
2008年7月 (2)
2008年6月 (4)
收藏夾
Java中的字符集編碼入門(6)
(rss)
搜索
最新評論
1.?re: Struts2學習筆記——輸入校驗(二)
ValidatorType.FIELD是什么意思呢?
--caipc
2.?re: ExtJs----彈出窗口
dsfsdfsdfsdf
--dgd
3.?re: javascript面向對象技術基礎(二)
@zx
什么意思?
--cxs
4.?re: javascript面向對象技術基礎(二)
rtwtwatwatst
--zx
5.?re: 《AspectJ Cookbook中文版》的附帶示例下載[未登錄]
謝謝
--jacky
閱讀排行榜
1.?ExtJs----彈出窗口(5592)
2.?ExtJs----Grid筆記(4777)
3.?ExtJs----拖放(3119)
4.?ExtJs----Ext支持的控件(2967)
5.?ExtJs----布局(2833)
評論排行榜
1.?《AspectJ Cookbook中文版》的附帶示例下載(12)
2.?插入排序思路與泛型版本的實現(4)
3.?歸并排序思路與泛型版本的實現(3)
4.?自編的"個人求職管理"小工具(2)
5.?《AspectJ Cookbook》讀書筆記四: 捕獲方法上的連接點(2)
Powered by:
BlogJava
Copyright © Brian
主站蜘蛛池模板:
666精品国产精品亚洲
|
麻豆亚洲AV永久无码精品久久
|
特级毛片在线大全免费播放
|
日本免费观看网站
|
亚洲成熟丰满熟妇高潮XXXXX
|
全免费A级毛片免费看网站
|
亚洲天然素人无码专区
|
成人片黄网站色大片免费
|
亚洲一区二区三区高清不卡
|
最近免费中文字幕大全视频
|
成人片黄网站A毛片免费
|
亚洲乱色伦图片区小说
|
日韩人妻无码免费视频一区二区三区
|
亚洲国产乱码最新视频
|
日韩在线a视频免费播放
|
国产成人精品亚洲一区
|
亚洲综合区小说区激情区
|
91福利免费网站在线观看
|
国产亚洲精品无码成人
|
久久成人a毛片免费观看网站
|
亚洲经典在线观看
|
免费精品人在线二线三线区别
|
一级一级毛片免费播放
|
亚洲爆乳无码一区二区三区
|
日韩免费无码视频一区二区三区
|
亚洲一卡二卡三卡
|
麻豆国产精品入口免费观看
|
国产亚洲精品美女久久久久久下载
|
亚洲偷自拍拍综合网
|
日韩免费的视频在线观看香蕉
|
亚洲欧洲高清有无
|
在线观看国产情趣免费视频
|
一级黄色免费毛片
|
老司机亚洲精品影院
|
国产午夜免费福利红片
|
最新久久免费视频
|
亚洲色大成WWW亚洲女子
|
亚洲人成网77777亚洲色
|
成全影视免费观看大全二
|
eeuss草民免费
|
亚洲图片中文字幕
|