这句话是否属实:
com.sun.xml.internal包是一个内部包,作为名称建议.用户不应编写依赖于内部JDK实现类的代码.此类是JDK的内部实现细节,如有更改,恕不另行通知
我的一位同事使用了他的代码中的一个类,导致Ant中的javac任务无法编译我们的项目,因为编译器无法找到该类.来自Sun/Oracle的回答说这是编译器的预期行为,因为用户不应该使用该包.
问题是为什么包中的课程首先公开?
谢谢,
莎拉
JDK中的Sun类是前缀sun.*并且不是公共支持的接口的一部分,因此应谨慎使用.来自太阳常见问题:
Sun包含在Java 2 SDK,Standard Edition中的类属于包组java.,javax.,org.*和sun ..除了sun之外的所有类.软件包是Java平台的标准部分,将来会得到支持.通常,在Java平台之外的诸如sun.之类的软件包可以在OS平台(Solaris,Windows,Linux,Macintosh等)之间有所不同,并且可以随时更改,而无需通知SDK版本(1.2,1.2) .1,1.2.3等).包含直接调用太阳的程序.包不是100%纯Java.换一种说法:
java.,javax.Java 2平台标准版API规范中记录的org.*包构成了官方支持的公共接口.
如果Java程序直接只调用这些包中的API,它将在所有兼容Java的平台上运行,而不管底层的OS平台如何.
sun.*包不是受支持的公共界面的一部分.
直接调用sun.*包的Java程序不能保证在所有兼容Java的平台上运行.实际上,即使在同一平台上的未来版本中,也不能保证这样的程序能够工作.