Tag: 导入

在java导入名称冲突

除非我们改变编译器 ,否则Java会错过import X as Y语法,这在像我这样的情况下很有用:在这个时刻,我正在处理一个具有多个具有相同名称但属于不同包的类的项目。 我想有类似的东西 import com.very.long.prefix.bar.Foo as BarFoo import org.other.very.long.prefix.baz.Foo as BazFoo class X { BarFoo a; BazFoo b; … } 相反,我完成了类似的东西 class X { com.very.long.prefix.bar.Foo a; org.other.very.long.prefix.baz.Foo b; … } 这里看起来非常有害,但是在我的具体情况下,我需要使用水平滚动来浏览我的源代码,而且这种情况使得已经很糟糕的程序变得更糟。 根据您的经验,这种情况下的最佳做法是什么?

Intellij,无法解析符号ByteBufferGuard

我已经建立了一个小型的项目 ,在ByteBufferGuard.java文件中有一个小型的ByteBufferGuard.java : final class ByteBufferGuard { @FunctionalInterface static interface BufferCleaner { void freeBuffer(String resourceDescription, ByteBuffer b) throws IOException; } } 然后是另一个类MMapDirectory.java 。 那么,在这个类中,我不能简单地通过导入BufferCleaner来BufferCleaner它,因为: import ByteBufferGuard.BufferCleaner; 收益: 无法解析ByteBufferGuard符号 但是这很奇怪,因为只有ByteBufferGuard被标记为红色,它确实会看到接下来是什么,即BufferCleaner 。 这两个类都位于相同的gradle默认根包下,即src/main/java/ 看类似的答案,我已经试图“无效的缓存/重新启动”,也删除.idea文件夹,再次打开项目..迄今没有成功。 假设这不是一个阻碍因素,因为我可以用ByteBufferGuard.BufferCleaner替换BufferCleaner所有引用,但仍然困扰着我,所以我想解决这个问题。 你知道可能是什么问题吗? java 1.8 u112 intellij 2017.1 eap 另一个有趣的事实是,使用Kotlin的同样的进口工作就像一个魅力。

导入和锯齿实践

目前在Leiva的“Android开发者Kotlin”一书中,有一件事是我想知道的… import blah.data.Forecast import blah.domain.Forecast as ModelForecast 为什么要在每个数据和领域层创建一个“预测”类,然后别名? 为什么不简单地命名一个域名blah.domain.ModelForecast开始? 我通常尽量避免在自己的项目中使用相同的名称,即使这些类确实发生在不同的包中。 从不这样做,我有什么好处?