小编Mar*_*eaș的帖子

如何修复 IntelliJ JavaFX 中的“包在模块中声明,但模块未读取它”错误?

我使用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

这是我的项目结构:

在此输入图像描述

可能是什么问题呢?

java intellij-idea maven

11
推荐指数
1
解决办法
1万
查看次数

为什么Java不自动访问重写的方法?

给定两个类,一个父类和一个子类:

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 …

java polymorphism

2
推荐指数
1
解决办法
234
查看次数

标签 统计

java ×2

intellij-idea ×1

maven ×1

polymorphism ×1