我使用IntelliJ和 Maven 创建了一个 JavaFX 项目。我正在尝试测试一些系统,该系统将项目添加到 XML 文件中,然后解析它并向我显示添加到文件中的所有项目。
我想使用FasterXML/Jackson来解析文件。在我的中pom.xml,我添加了以下依赖项:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.13.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
(...) 我还通过 IntellJ 提供的按钮加载了 Maven 更改。我还按下了“重新加载所有 Maven 更改”按钮。“依赖项”文件夹似乎一切正常。我没有收到任何错误或投诉:

但是,当我尝试导入一些与 Jackson 相关的类时,例如ObjectMapper,如下所示:
import com.fasterxml.jackson.databind.ObjectMapper;
Run Code Online (Sandbox Code Playgroud)
(...) 我收到这样的错误:
Package 'com.fasterxml.jackson.databind' is declared in module 'com.fasterxml.jackson.databind', but module 'com.example.demo1' does not read it。
这是我的项目结构:
可能是什么问题呢?
给定两个类,一个父类和一个子类:
class A {
private void greet() {
System.out.println("Class A");
}
}
class B extends A {
public void greet() {
System.out.println("Class B");
}
}
Run Code Online (Sandbox Code Playgroud)
一个有一个名为 的方法greet(),即private,另一个定义了一个同名的方法,只不过它是public。现在,据我所知,孩子的greet()方法不会覆盖父母的方法,因为它“隐藏”了它?(考虑到私有方法不能被重写?)
A现在,给出以下类和方法(被认为与和位于同一包中B):
public class Main {
public static void main(String[] args) {
B b = new B();
b.greet();
}
}
Run Code Online (Sandbox Code Playgroud)
这应该可以编译。但这一个:
public class Main {
public static void main(String[] args) {
A a = new B();
b.greet();
}
}
Run Code Online (Sandbox Code Playgroud)
这里的这个无法编译,因为它缺少类型转换。我的问题是:为什么?如果该greet()方法同时存在于两个地方,则两次public …