【发布时间】: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