【问题标题】:import does not seem to be working correctly in Eclipse/Java [duplicate]import 在 Eclipse/Java 中似乎无法正常工作 [重复]
【发布时间】:2015-04-30 17:58:10
【问题描述】:

我正在使用以下内容:

String x; ... ... // x gets set somewhere in this code String y = x.replaceAll("\\s+", " ").trim();

然后我发现 org.apache.commons.lang3.StringUtils.normalizeSpace() 做同样的事情。所以在我的班级顶部我添加了

导入 org.apache.commons.lang3.StringUtils;

并调用 String y = normalizeSpace(x); 但它给了我一个未找到方法的错误,并建议我创建该方法。

所以我尝试了 import org.apache.commons.lang3.StringUtils.*;

但同样的问题。有人知道出了什么问题吗?

是的,我可以并且确实使用

String y = org.apache.commons.lang3.StringUtils.normalizeSpace(x);

但是每次输入整个路径都会很尴尬。

哦,我在任何一个导入语句中都没有遇到语法错误。 我想我可以回到替换和修剪,但 StringUtils 有很多其他方法也可以很好地使用。

【问题讨论】:

  • 当您键入 CTRL + SHIFT + O 时会发生什么?另外,如果你去“Open Type”(CTRL + SHIFT + T)并搜索StringUtils,你能找出任何关于包含StringUtils的jar位置的线索吗?
  • 为什么所有 3 个答案都被否决了?

标签: java eclipse import apache-stringutils


【解决方案1】:

您要么需要静态导入:

import static org.apache.commons.lang3.StringUtils.*;

...

String y = normalizeSpace(x);

或按名称引用类:

import org.apache.commons.lang3.StringUtils;

...

String y = StringUtils.normalizeSpace(x);

【讨论】:

    【解决方案2】:

    StringUtils 是一个类。它有一个名为normalizeSpace() 的静态方法。

    当您导入类时,这仅仅意味着您可以使用类名而不使用完全限定名。所以你可以这样做:

    String y = StringUtils.normalizeSpace(x);
    

    由于normalizeSpace()是静态方法,你也可以使用静态导入

    import static org.apache.commons.lang3.StringUtils.normalizeSpace;
    

    然后您就可以直接使用 normalizeSpace() 方法,而无需类名。

    但是,应该注意的是,静态导入应该很少使用,因为它们会使您的代码更难以遵循。

    【讨论】:

      猜你喜欢
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2017-09-04
      • 2012-05-06
      相关资源
      最近更新 更多