在Scala vs Java中导入类优先级

Hac*_*g J 2 java scala

由于导入类问题,我被卡住了。就我而言,我的类与Apache Common有依赖关系StringUtils,并且StringUtils在同一包中有一个相同的名称class()。(Main类与Apache Common的依赖StringUtils,并且与Main类在同一包中有一个StringUtils。但这是编译错误)

在此处输入图片说明

StringUtils用导入语法指定了apache common ,但是似乎被同一包的遮盖了StringUtils。是scala的语言规范吗?

在Java中,没有问题。它与Apache common的StringUtils一起使用。 在此处输入图片说明

Gho*_*ica 7

我建议您简单地使用scala中的功能来创建“别名”,例如:

import users.{UserPreferences => UPrefs}  // import and rename for convenience
Run Code Online (Sandbox Code Playgroud)

(来自scala-lang.org

换句话说:通过以其他名称导入库类,只需避免该类名称的阴影。


Ben*_*aye 6

您可以通过使用全限定名来使用Apache的StringUtils。

println(org.apache.commons.lang3.StringUtils.isEmpty(""))
Run Code Online (Sandbox Code Playgroud)