使用Sun专有的Java类是不好的做法?
如果您使用Sun的专有Java类,编译器会显示警告。 我认为使用这些类通常是一个糟糕的主意。 我在某处读过这篇文章。 但是,除了警告之外,你有什么根本原因不应该使用它们?
因为它们是内部API:它们可能会以无证或不受支持的方式进行更改,并且它们绑定到特定的JRE / JDK(您的情况为Sun ),从而限制了程序的可移植性。
尽量避免使用这样的API,总是喜欢公开记录和指定的类。
JDK 6文档包含标题为“关于sun.*
包”的链接。 这是来自Java 1.2文档的文档,因此对sun.*
引用应该像对待com.sun.*
一样对待com.sun.*
其中最重要的一点是:
Sun在Java 2 SDK标准版中包含的类属于包java.*
, javax.*
, org.*
和sun.*
。 除sun.*
所有软件包都是Java平台的标准组成部分,将来会受到支持。 通常,在Java平台之外的软件包(例如sun.*
可能在OS平台(Solaris,Windows,Linux,Macintosh等)上有所不同,并可随时更改,恕不另行通知,SDK版本(1.2, 1.2.1,1.2.3等)。 包含直接调用sun.*
包的程序不是100%纯Java。
和
每个实现Java平台的公司都会以自己的私人方式进行操作。 sun.*
的类包含在SDK中以支持Java平台的Sun实现: sun.*
类是Java平台类为Sun Java 2 SDK“覆盖”而工作的原因。 这些类通常不会出现在其他供应商的Java平台上。 如果您的Java程序按名称要求类“sun.package.Foo”,则它可能因ClassNotFoundError失败,并且您将失去使用Java进行开发的主要优势。
尝试使用非Sun JVM运行代码并查看会发生什么...
(您的代码将失败并出现ClassNotFound异常)
链接地址: http://www.djcxy.com/p/26991.html上一篇: It is a bad practice to use Sun's proprietary Java classes?
下一篇: iCloud and GEOResourceManifestServerRemoteProxy: Lost connection to geod warning