为什么要从java.awt中删除依赖项?

为什么要从java.awt中删除依赖项?,java,dependencies,Java,Dependencies,在Selenium's中,它表示: java.awt.Point的副本,用于删除对awt的依赖关系 这有什么好处?如果您想导入整个selenium类,您可以执行以下操作: import org.openqa.selenium.*; 如果您想使用point,则还必须执行以下操作: import java.awt.point; 即使您不打算使用java.awt包的任何其他部分 因此,通过这样做,您永远不必包含java.awt,除非显式使用它-因此,对java.awt没有依赖性 这可能是因为众所周

在Selenium's中,它表示:

java.awt.Point的副本,用于删除对awt的依赖关系


这有什么好处?

如果您想导入整个selenium类,您可以执行以下操作:

import org.openqa.selenium.*;
如果您想使用point,则还必须执行以下操作:

import java.awt.point;
即使您不打算使用
java.awt
包的任何其他部分

因此,通过这样做,您永远不必包含
java.awt
,除非显式使用它-因此,对
java.awt
没有依赖性


这可能是因为众所周知AWT在不同的平台上运行方式不同,这击败了Java-WORA(Write-Once-run Anywhere)的关键理念之一。您不希望像Selenium这样的独立于平台的东西依赖于像AWT这样的重量级东西。

消除对Java UI类的依赖。在Java9之前,这使得验证产品是否没有耦合到不同的UI工具包变得更容易。在Java 9中,这可能允许在没有Java UI类的JVM中运行。@AndyThomas,那么Java 9中是否存在允许一致的Java实现无法提供AWT或Java SE标准库的其他部分的情况?@AndyThomas,验证的简易性带来了什么?@skia.heliou-更加确信第二个UI工具包没有被意外使用。后来,使用Java9,可以轻松地与相应的模块分离--
Java.desktop
@AndyThomas,您和DCON——这两个方面都很好,也很有趣。这不是我喜欢根据别人的建议做出我自己的答案的情况之一,所以你们两个中的第一个在一个答案中获得所有信息的人得到了被接受的答案?