[java]奢談未來的java語言。。。

來源:互聯網
上載者:User

Java是個扶不起的阿鬥,sun在贏了微軟的官司以後似乎在忙於分紅,相對於紅紅火火的.net世界,sun幾乎在坐以待斃,浪費無數開源愛好者的感情。
matrix展望2006的java,似乎只能看到開源愛好者的一腔熱血。

未來的java應該是什麼樣子呢?下面是我期望: 

    /** *//**
     * 1. null 指標抑制<br>
     * JVM支援的Runtimenull 指標抑制,根據方法的[Nullable]標記<br>
     * java裡面有太多的NullPointer異常,經常需要複雜的檢測,浪費沒必要的代碼。
     */
    [Nullable]
    public void testNullable(A a){
        return a.b().c.d(); //如果用if else寫需要多少代碼?
    }
    
    /** *//**
     * 2. 動態屬性支援<br>
     * 類似範型的實現,由編譯器支援即可。<br>
     * @param a: A implements DynamicBean,沒有定義c屬性
     */
    public void dynamicProperty(A a){
        assert a != null;
        a.b.c = "abc"; //等效於a.getProperty("b").setProperty("c","abc");
        ResultSet rs; //for database:
        String name = rs.name; //if ResultSet defined getStringProperty(): String name = rs.getStringProperty("a");
        Element order; //for xml, element auto-created in getProperty() method.
        order.address.phone = "1234"; //order.getProperty("address").setProperty("phone","1234");
    }
    
    
    /** *//**
     * 3. 動態方法支援<br>
     * 由編譯器支援即可。<br>
     * @param a: A implements DynamicInvoke,沒有定義b()方法
     */
    public void dynamicMethod(A a){
        a.b(1,"x"); //編譯為a.invoke("b",new Object[]{1,"x"]);
    }
    
    /** *//**
     * 4. 快速反射<br>
     * 由編譯器支援即可。便於編譯期間錯誤檢查<br>
     * @param a: A 定義了b(),c變數
     */
    public void fastReflection(A a){
        Annotation[] mas = a.b().class.getAnnotations(); //a.getClass().getMethod("b").getAnnotations();
        Annotation[] mas = a.c.class.getAnnotations(); // a.getClass().getField("c").getAnnotations();
    }
    
    /** *//**
     * 5. 索引器<br>
     * 類似.net的索引器,文法簡潔。編譯期間支援即可<br>
     * @param a: A 實現了List介面,Map介面
     */
    public void indexVisit(A a){
        Element order ; //xml element
        Element first = order[0]; //order.get(0);
        Element address = order["address"]; //order.get("address")
    }

    /** *//**
     * 6. AOP<br>
     * JVM內建支援AOP標記<br>
     * Trace是使用者自行定製的Attribute, Trace.Interceptor指定攔截器 
     */
    [Trace]
    [Role("admin")][Transactional]
    public void jvmAOP(A a){
        
    }
    
    /** *//**
     * 7. 條件編譯<br>
     * 編譯器支援Condition標記,可以用於所有元素,甚至package<br>
     * 用於測試期間、調試期間編譯出不同的結果
     */
    
    /** *//**
     * 8. Schema,DataBase編譯支援<br>
     */
    public static void schemaSupport() {
        [Schema(url="file://test.xsd")]
        Document doc;
        Element c = doc.a.b.c; //根據schema編譯期間檢查
    }
    
    /** *//**
     * 9. 內建對象資料庫,支援類似記憶的遺忘模式以節省空間的
     */
    public void databaseSupport(){
        Database.default.find("");
    }

10. 應該是平台支援,象.net一樣平滑。

希望sun早日把java捐贈到開源社區,象eclipse一樣煥發青春。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.