This question already has answers here:
How to import a class from default package
(9个答案)
3年前关闭。
我在
然后是另一个类,
返回:
无法解析符号ByteBufferGuard
但这很奇怪,因为只有
这两个类位于相同的gradle默认根包下,即
在寻找类似的答案时,我已经尝试过“使缓存无效/重新启动”,并且还删除了
可以说这不是一个障碍,因为我可以用
您知道可能是什么问题吗?
Java 1.8 u112
intellij 2017.1 EAP
另一个有趣的事实是,使用Kotlin进行的完全相同的导入操作就像一个魅力。
和
(经过日食测试,但应该相同)
无法从
https://stackoverflow.com/a/7849460/85421
How to import a class from default package
(9个答案)
3年前关闭。
我在
ByteBufferGuard
文件中设置了一个小的project和一个小的最终类ByteBufferGuard.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
文件夹并再次打开该项目。.到目前为止没有成功。可以说这不是一个障碍,因为我可以用
BufferCleaner
替换ByteBufferGuard.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
导入类:https://stackoverflow.com/a/7849460/85421
How to import a class from default package
09-04 09:36