gpt4 book ai didi

java - 导入类文件中缺少的文件

转载 作者:行者123 更新时间:2023-12-02 01:01:45 25 4
gpt4 key购买 nike

我正在使用另一个接口(interface)中的某些static变量,因此我在我的类中导入这个接口(interface)。但是,在我的 Java 类的 .class 文件中看不到此 import 。然而,还可以看到其他非静态成员的导入。这是预期的行为吗?如果是,那为什么?

最佳答案

导入根本不会编码在 .class 文件中,它们纯粹是语法糖,以避免在 Java 源代码中使用类和/或成员的全名。类文件不知道您是否使用了 import package.AClass 或者只是在源文件中通过其全名引用了 package.AClass

您可能会看到,在您的类中根本找不到对导入字段的引用,这可能是由于以下两个原因之一造成的:

  • 您导入了类/成员,但从未在其余代码中实际引用它。

    由于导入是语法糖,这意味着您的“真实代码”中不存在对导入内容的引用

  • 您引用了一个静态最终字段,其中包含 compile time constant在这种情况下,不会生成对该字段的引用,但将直接内联。

    class A {
    public static final String CONSTANT = "foo";
    }

    class B {
    private String field = A.CONSTANT;
    }

    在这种情况下,B 的类文件将包含值“foo”没有对类A<的引用.

关于java - 导入类文件中缺少的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60558728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com