2011年11月15日 星期二

java 注解程式範例



    注解的語法比較簡單,除了@符號的使用以外,它基本上與java的固有語法一致,java內置了三種注解,定義在java.lang包中。
      @Override  表示當前方法是覆蓋父類的方法。
      @Deprecated  表示當前元素是不贊成使用的。
      @SuppressWarnings 表示關閉一些不當的編譯器警告資訊。


  下面是一個定義注解的實例
1.     package Test_annotation;  
2.       
3.     import java.lang.annotation.Documented;  
4.     import java.lang.annotation.Inherited;  
5.     import java.lang.annotation.Retention;  
6.     import java.lang.annotation.Target;  
7.     import java.lang.annotation.ElementType;  
8.     import java.lang.annotation.RetentionPolicy;  
9.       
10.  /* 
11.   * 元注解@Target,@Retention,@Documented,@Inherited 
12.   *  
13.   *     @Target 表示該注解用於什麼地方,可能的 ElemenetType 參數包括: 
14.   *         ElemenetType.CONSTRUCTOR 構造器聲明 
15.   *         ElemenetType.FIELD 域聲明(包括 enum 實例) 
16.   *         ElemenetType.LOCAL_VARIABLE 區域變數聲明 
17.   *         ElemenetType.METHOD 方法聲明 
18.   *         ElemenetType.PACKAGE 包聲明 
19.   *         ElemenetType.PARAMETER 參數聲明 
20.   *         ElemenetType.TYPE 類,介面(包括注解類型)或enum聲明 
21.   *          
22.   *     @Retention 表示在什麼級別保存該注解資訊。可選的 RetentionPolicy 參數包括: 
23.   *         RetentionPolicy.SOURCE 注解將被編譯器丟棄 
24.   *         RetentionPolicy.CLASS 注解在class文件中可用,但會被VM丟棄 
25.   *         RetentionPolicy.RUNTIME VM將在運行期也保留注釋,因此可以通過反射機制讀取注解的資訊。 
26.   *          
27.   *     @Documented 將此注解包含在 javadoc 中 
28.   *      
29.   *     @Inherited 允許子類繼承父類中的注解 
30.   *    
31.   */  
32.  @Target(ElementType.METHOD)  
33.  @Retention(RetentionPolicy.RUNTIME)  
34.  @Documented  
35.  @Inherited  
36.  /* 
37.   * 定義注解 Test 
38.   * 注解中含有兩個元素 id 和 description 
39.   * description 元素 有預設值 "no description" 
40.   */  
41.  public @interface Test {  
42.      public int id();  
43.      public String description() default "no description";  
44.  }  
下面是一個使用注解 和 解析注解的實例
1.     package Test_annotation;  
2.       
3.     import java.lang.reflect.Method;  
4.       
5.     public class Test_1 {  
6.         /* 
7.          * 被注解的三個方法 
8.          */  
9.         @Test(id = 1, description = "hello method_1")  
10.      public void method_1() {  
11.      }  
12.    
13.      @Test(id = 2)  
14.      public void method_2() {  
15.      }  
16.    
17.      @Test(id = 3, description = "last method")  
18.      public void method_3() {  
19.      }  
20.    
21.      /* 
22.       * 解析注解,將Test_1類 所有被注解方法 的資訊列印出來 
23.       */  
24.      public static void main(String[] args) {  
25.          Method[] methods = Test_1.class.getDeclaredMethods();  
26.          for (Method method : methods) {  
27.              /* 
28.               * 判斷方法中是否有指定注解類型的注解 
29.               */  
30.              boolean hasAnnotation = method.isAnnotationPresent(Test.class);  
31.              if (hasAnnotation) {  
32.                  /* 
33.                   * 根據注解類型返回方法的指定類型注解 
34.                   */  
35.                  Test annotation = method.getAnnotation(Test.class);  
36.                  System.out.println("Test( method = " + method.getName()  
37.                          + " , id = " + annotation.id() + " , description = "  
38.                          + annotation.description() + " )");  
39.              }  
40.          }  
41.      }  
42.    
43.  }  
輸出結果如下:

    Test( method = method_1 , id = 1 , description = hello method_1 )
    Test( method = method_2 , id = 2 , description = no description )
    Test( method = method_3 , id = 3 , description = last method )

2011年11月8日 星期二

開放源碼 PHP 資源


大量既PHP開源(開放源代碼/Open Source)應用改變左呢個世界,改變左網際網路,以下我們總結從數據庫到購物、博客等眾多類型既開源PHP軟體,供網站開發者們參考。
博客:WordPress
WordPress係使用PHP開發既既著名博客平台,免費開源,功能強大,不僅僅用于博客搭建,仲可以廣泛應用於各類網路資訊發布平台。
論壇:phpBB
phpBB係一種廣泛流行既開源論壇軟體,具有易於使用既管理面板和友好既用戶安裝介面,可以輕鬆地在數分鐘內建立起一個論壇,功能上具有好高既可配置性,可以完全定製出相當個性化既論壇。
 CMS:Drupal
Drupal係一個開源既內容管理系統(CMS)平台,擁有強大並可自由配置既功能,能支持從個人博客到大型社區驅動既網站等各種不同應用的網站項目。
Wiki:MediaWiki
MediaWiki係PHP語言寫成開源Wiki引擎,全世界最大既Wiki項目維基百科就係使用MediaWiki引擎。
Digg:Pligg
Pligg係一套靈活的類似Digg既Web2.0 CMS系統,系統使用PHP開發,模仿左國外流行的DIGG系統。
圖像:Gallery
Gallery 係一個非常有名既免費開源圖庫相冊軟體,基於 PHP 和 MySQL, PostgreSQL 等數據庫。功能非常強大,有豐富既擴展可以下載,安裝好簡單,有好多插件可用。
Gregarius係一個RSS聚合程式,免費開源,具備唔錯既用戶體驗,易於操作和管理。可以把其當成RSS閱讀器使用。
電子商務:osCommerce
osCommerce係一套由自由軟體開發社團開發並維護既在線商店的解決方案,免費開源,並可以應用到任何既商業環境中,可以在短時間內生成一個功能強大的電子商務網站。
 廣告:OpenX
OpenX(原名phpAdsNew)係一個用PHP開發既廣告管理與跟蹤系統,適合各類網站使用,能夠管理每個廣告主擁有的多種任何尺寸橫幅廣告,按天查看,詳細和概要統計並通過電子郵件發送報表給廣告主。
數據庫:phpMyadmin
phpMyAdmin係用PHP開發的MySQL的數據庫管理工具。可以在Web介面上實現各種各樣對MySQL數據庫的管理和操作。