也许我误解了Maven的依赖原则,但这是我的问题:

我有一个小Java程序需要这些导入

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
import java.io.StringWriter;

现在,我不想在代码顶部导入这些内容,我只想

非常感谢.

推荐答案

现在,我不需要在代码顶部导入它们,而只需要进入Maven项目的POM文件并添加依赖项.

不.你把两件不同的事情混为一谈:

  • Managing dependencies(在项目中下载和放置库)
  • Using dependencies(从代码中调用库的类和方法)

Managing dependencies

要使用库,您需要获取物理副本、文件,通常是.jar文件.您可以手动下载副本.或者您可以使用MavenGradle下载一份副本.通常建议使用Maven或Gradle方法,而不是手动方法.

下载后,您需要将文件放置在项目中可以找到的位置.同样,您可以手动执行此操作,也可以使用Maven或Gradle使文件可用于您的项目.同样,与手动方法相比,通常建议使用Maven或Gradle方法.

Using dependencies

在获得并放置了库的副本之后,您就可以访问它的类和方法了.

???? 问题是在另一个库中找到了authors of that library may have named some of their classes and methods coincidentally with the same name个.

假设您想使用一个名为Source的类,但您的两个库都有这样的类:

  • javax.xml.transform.Source
  • com.example.awesome.Source

如果您在代码中编写:

Source s = new Source() ;

…编译器如何知道您指的是这两个类中的哪一个?????

要解开谜团,您可以:

  • Write a fully-qualified class name.
    javax.xml.transform.Source s = new javax.xml.transform.Source() ;
  • Write an import statement.
    import javax.xml.transform.Source ;

第二种方法是编写import条语句,通常比第一种使用完全限定名的方法打字更少,阅读更容易.

import这个词有点用词不当,是出于历史遗留的原因.一个更好的名称应该是namespace,例如,特定名称的特定定义域.

阅读此内容时:

import javax.xml.transform.Source ;

…想想看:

namespace javax.xml.transform.Source ;

…意思是:"下面使用的任何单词"Source"都可以假设是指库中包为javax.xml.transformSource类."

为了找到您命名的包的类,运行时Java Virtual Machine自动查找您获得和放置的所有库.

Java相关问答推荐

当耗时的代码完成时,Circular ProgressIndicator显示得太晚

我可以从Java模块中排除maven资源文件夹吗?

如何使用解析器组合子解析Java数组类型签名?

Android视图覆盖不阻止点击它后面的控件

基本时态运算的ISO-8601周数据表示法

如何使用AWS CLI从S3存储桶中的所有对象中删除用户定义的元数据?

将不受支持的时区UT重写为UTC是否节省?

Spark上下文在向Spark提交数据集时具有内容,但Spark在实际构建它时发现它为空

如何创建同一类的另一个对象,该对象位于变量中?

Spring和可编辑";where";@Query

在Ubuntu 23.10上使用mp3创建JavaFX MediaPlayer时出错

无法将GSON导入到我的JavaFX Maven项目

Java 21中泛型的不兼容更改

不能在 map 上移除折线

如何在Java中的重写方法参数中强制(Enum)接口实现?

具有多个分析模式的复杂分隔字符串的正则表达式

如何修复Spring Boot应用程序中的RestDocumentationGenerationException:java.io.FileNotFoundException:/curl-request.adoc(只读文件系统)?

如何在特定关键字后提取与模式匹配的多个值?

在数组中查找素数时出现逻辑错误

这是JavaFX SceneBuilder的错误吗?