国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何避免Microsoft非標準JavaSDK的潛在危險(1)

2019-11-18 13:45:02
字體:
來源:轉載
供稿:網友

  如何避免Microsoft非標準javaSDK的潛在危險
我分析了類,碰到了七個方面的問題。假如要用Microsoft Java SDK開發在其他Java1.1認證的環境中可以運行的應用,應該非凡注重這些問題,它們是:

1.新類
2.新方法
3.新變量
4.更改的接口
5.com.ms包
6.省略的方法
7.動作差別

Baratz在Sun公布其起訴時用"欺騙"一詞是因為SDK中所帶的關于Java類的文檔沒有提到這些修改。要發現它們,必須用SDK所帶的ClassVue工具或者人工地讀源代碼。最好使用ClassVue,因為SDK提供的源代碼可能并不是產生類的文件,對不熟悉ClassVue的人,等價的工具是SunSDK提供的類文件內部檢查器javap。

以下是一張SDK中所有修改的清單,但是也有可能有疏漏。這里提到的所有修改都在java.lang、java.io、java.awt、java.util和java.security包或子包中,每個包的修改如下:

java.lang:新方法、新變量

java.io:省略方法

java.awt:新類、新方法、新變量

java.util:新方法、新變量

java.security:修改接口


新類
首先,Microsoft在其JavaSDK系統包中增加了新的類、方法和變量。所有在完全修飾名中以java.*開頭的叫做系統包或者核心JavaAPI。十六個新類加入到了java.awt中,它們是:

Microsoft 新 增 加 的AWT 同 位 類 的Java 類 WButtonPeer WCheckboxMenuItemPeer WCheckboXPeer WChoicePeer
WLabelPeer WListPeer WMenuBarPeer WMenuItemPeer
WMenuPeer WPopupMenuPeer WScrollbarPeer WScrollPanePeer
WTextAreaPeer WTextComponentPeer WTextFieldPeer WUipeer

除了最后一個,所有的類都是AWT構件的同位(peer)類。同位類是諸如按鈕和菜單的圖形構件在特定平臺的表示。一般來說,這些類會出現在不同的包中,如sun.awt.windows或者sun.awt.motif,你可以不使用它們,故很輕易避免。WUIPeer也是一個同位類,但是它支持Microsoft專用的動作,應該避免使用它。另外還加入了其他的包私有(package-PRivate)類(也稱為友類,無須增加訪問分類符要害字),如_AwtUIBand和_UIMenuRoot。因為在java.awt之外是不可訪問的,故不能直接使用。

新方法和實例變量
增加最多的方法是getBaseName()。幸好它是包私有的。其他的修改,例如將classLoader的loadClassInternal()方法由包私有變為私有是由于實現上的差別,不影響開發者。

不是我忽視Microsoft的包私有修改,但是除非開發者自己擴展Java要害類庫,否則就涉及不到這些修改。因為開發者更多的時候是尋求一種跨平臺的解決方案,而不是將自己的修改加入到要害Java類庫中去,所以這不是問題。而真正的問題是Microsoft新加入的公用方法。

要害Java類庫中加入的公用方法類新方法

java.awt.EventQueue _postEvent(AWTEvent)
java.awt.Font getNativeData()
java.awt.image.ColorModel finalize()[was protected]
java.awt.image.DirectColorModel getToolkitData()
java.awt.image.IndexColorModel getOpaque()
getToolkitData()
java.awt.SystemColor getWin32Index()
java.lang.Class getInterface(string)
getMethods(int[])
getMethodFromSignature(string,String)
getDeclaredMethodFromSignature(String,String)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨边| 靖州| 漯河市| 五原县| 兴隆县| 化德县| 乳源| 黄山市| 阳西县| 和龙市| 合阳县| 许昌市| 洞口县| 白玉县| 荔浦县| 邹城市| 潢川县| 泗水县| 万山特区| 德昌县| 婺源县| 桦川县| 信宜市| 宿松县| 北辰区| 来安县| 郎溪县| 石林| 武乡县| 苍南县| 舟山市| 定兴县| 阳城县| 沾益县| 板桥市| 东源县| 文安县| 安徽省| 电白县| 陆丰市| 台前县|