Intellij,无法解析符号ByteBufferGuard

我设置了一个小项目ByteBufferGuardByteBufferGuard.java文件中有一个小的最终课程

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文件夹并再次打开了项目。.到目前为止没有成功。

比方说,这不是一个拦截器,因为我可以替代的所有引用BufferCleanerByteBufferGuard.BufferCleaner,但它仍然困扰着我,所以我想解决这个问题。

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

Java 1.8 u112

intellij 2017.1 EAP

另一个有趣的事实是,使用Kotlin进行的完全相同的导入操作就像是一种魅力。

用户名

不要使用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;
    // ...
}

(经日食测试,但应相同)

无法从中导入类default package

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章