【问题标题】:Intellij, cannot resolve symbol ByteBufferGuard [duplicate]Intellij,无法解析符号 ByteBufferGuard [重复]
【发布时间】:2017-01-23 08:48:12
【问题描述】:

我在ByteBufferGuard.java 文件中设置了一个小的project,并带有一个小的final class ByteBufferGuard

final class ByteBufferGuard {
    @FunctionalInterface
    static interface BufferCleaner {
        void freeBuffer(String resourceDescription, ByteBuffer b) throws IOException;
    }
}

然后是另一个类,MMapDirectory.java。好吧,在这个类中,我不能简单地通过导入来引用BufferCleaner,因为:

import ByteBufferGuard.BufferCleaner;

返回:

无法解析符号 ByteBufferGuard

但这很奇怪,因为只有 ByteBufferGuard 被标记为红色,它确实看到了接下来的内容,即 BufferCleaner

这两个类都位于同一个gradle默认根包下,即src/main/java/

查看类似的答案,我已经尝试“使缓存/重新启动无效”并删除.idea 文件夹并再次打开项目.. 到目前为止没有成功。

假设这不是一个拦截器,因为我可以用ByteBufferGuard.BufferCleaner 替换所有BufferCleaner 的引用,但它仍然困扰着我,所以我想解决这个问题。

你知道可能是什么问题吗?

java 1.8 u112

intellij 2017.1 eap

另一个有趣的事实是,使用 Kotlin 进行相同的导入就像一个魅力..

【问题讨论】:

  • 制作ByteBufferGuardpublic?
  • 我认为你需要导入整个类:import ByteBufferGuard。不是 100% 确定。
  • @CKing,它们在同一个包下,所以没关系,但是我尝试写public final class ByteBufferGuard,但不幸的是它也不起作用
  • @YogevLevy,当我输入 import ByteBufferGuard 时,ByteBufferGuard 是红色的。
  • 试试import static ByteBufferGuard.BufferCleaner;?另外,MMapDirectory.java 是否与ByteBufferGuard 在同一个包中?

标签: java intellij-idea import


【解决方案1】:

不要使用default package(未命名的包) - 如果将两个文件都移到一个包(子目录)中,它应该可以工作。

package some.package;

final class ByteBufferGuard {
    @FunctionalInterface
    static interface BufferCleaner {
        void freeBuffer(String resourceDescription, ByteBuffer b) throws IOException;
    }
}

package some.package;

import some.package.ByteBufferGuard.BufferCleaner;

public class MapDirectory {
    private BufferCleaner cleaner;
    // ...
}

(用eclipse测试过,但应该是一样的)

无法从default package 导入类:

【讨论】:

  • 不加评论投反对票将无助于改善答案!
  • 确实是这个问题,谢谢卡洛斯!
  • 我+1(当它是0),它又是零,看起来其他人也投了反对票..我永远不会理解那些人..
【解决方案2】:

也许让你的班级public,或者如果你想成为一个包,请确保使用ByteBufferGuard的其他class在同一个包中

【讨论】:

    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 2016-10-12
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2019-02-21
    相关资源
    最近更新 更多