JAVA+Engine VS C#+Engine

來源:互聯網
上載者:User

從Net+Engine,本來以為不是很難,但是我卻錯了,我們知道AE開發也就意味著介面編程,而AE中的東西也就是AO,這個是構建在com之上的,當我們用Net開發,那麼就存在net和com的互動,這些都有相應的互操集(ESRI provides primary interop assemblies for all the ArcObjects type libraries that are implemented with COM)。一個類可以實現多個介面,每一個介面負責管理屬於自己的方法,那麼介面編程也必然存在著從一個介面到另一個介面的訪問,也就是QI,在C#中,這種很容易做,直接做一個類型轉換就OK了

而在C#中是不能用類的。

java中的通訊也肯定有一個互操作集,也就是COM Interop Bridge而對於java(ESRI are using third-party software (J-Integra: http://j-integra.intrinsyc.com/) to automagically generate a bridge between Java and their COM libraries.)。Java中也就必然存在介面QI,而這個是由代理類來完成的,在Java中多了一個IXXXproxy的東西,這個是類而不是我們在c#中說到的介面。

而在Java中可以使用類來編程,這可能是因為Java中的介面轉換比較麻煩吧!既然IXXXproxy是類,這裡面肯定要有建構函式,不然對象怎麼產生,而IXXXproxy的預設的建構函式是不允許我們使用的,只能內部使用

[C#]

IPoint point = new PointClass();if (point is IGeometry){    IGeometry geometry = (IGeometry)point;    Console.WriteLine(geometry.GeometryType.ToString());}

 

在Java中

IGeometry iGeometry = new IGeometryProxy(iPoint);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.