【问题标题】:The method format(String, Object[]) in the type String is not applicable for the arguments (...)String 类型中的方法 format(String, Object[]) 不适用于参数 (...)
【发布时间】:2011-12-03 19:57:01
【问题描述】:

这是我的代码:

int hoursFormat = 1, minsFormat = 2, secsFormat = 3;
String timeFormat = String.format("%02d:%02d:%02d",hoursFormat, minsFormat, secsFormat);

这会导致编译错误:

Unresolved compilation problem: 
    The method format(String, Object[]) in the type String is not applicable for the 
      arguments (String, int, int, int)

为什么会出现此错误,我该如何解决?

【问题讨论】:

  • 您使用的是什么 JDK 品牌/版本?你用的是什么IDE? IDE 项目的 Java 合规级别版本设置为多少?
  • 您使用的是什么版本的 Java?如果您使用的是 Eclipse 之类的 IDE,Java 编译器设置的合规级别是多少? 编辑:太慢了!该死的巴鲁斯! :)
  • 合规水平——我敢打赌就是这样。

标签: java string format


【解决方案1】:

我对 printf 也有类似的问题。我正在使用 JDK 1.6.0_27。将合规级别设置为 1.6 解决了我的问题。这可以通过以下方式设置。

项目 > 属性 > Java 编译器

你也可以参考下面的帖子:

Why am I getting a compilation errors with a simple printf?

【讨论】:

    【解决方案2】:

    您使用的是 Java 1.4 或更低版本吗? Autoboxing 直到 Java 5 才引入。尝试手动将 ints 装箱到 Integers。

    【讨论】:

      【解决方案3】:

      你在用eclipse吗?

      如果有时是这样,当一切似乎都正确时,就会出现类似的问题。这是我刚刚解决的方法:

      • 右击项目,进入属性->Java编译器
      • 您会在下拉菜单中看到最近的编译器合规级别(在我的例子中为 1.7)(“编译器合规级别”)。在下面的“生成的 .class 文件兼容性”和“源兼容性”中也可以看到相同的版本。

      现在:

      • 选中复选框:“使用默认合规性设置”
      • 请注意,较低版本(在我的情况下为 1.1)设置为:“生成的 .class 文件兼容性”和“源兼容性”。这就是问题所在,尽管 eclipse 显示它正在使用更高的编译器进行编译,但事实并非如此。
      • 在下拉“编译器合规性级别”中选择其他级别,然后选择您想要的级别。这些更改将反映在下面的“生成的 .class 文件兼容性”和“源兼容性”中。

      这应该可以解决问题。

      【讨论】:

        【解决方案4】:

        您拥有jdk 1.4 或以下版本。在Jdk 1.5中引入了String.format()方法。

        看看coderanch的帖子。

        【讨论】:

        • 方法format(String, Object[])在1.4中根本不存在,它会导致完全不同的编译错误。
        • 如果这是真的,错误会更像“方法格式(字符串,整数,整数,整数)未定义为字符串类型。此错误表明该方法已被识别,但参数错了。
        【解决方案5】:

        我会投票支持干净的构建。它没有理由像这样失败,尤其是当您尝试手动装箱到整数时。你在使用 Eclipse 吗?有时它会变得混乱,你只需要重建一切。

        【讨论】:

          【解决方案6】:

          格式的签名是:

          public static String format(String format, Object ... args) {
              return new Formatter().format(format, args).toString();
              }
          

          您的代码似乎没有任何错误,我的建议是尝试在不使用任何 IDE 的情况下使用控制台应用程序运行它(用于测试目的)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-06-24
            • 2017-08-15
            • 2016-05-28
            • 2018-01-09
            • 2011-12-08
            • 1970-01-01
            相关资源
            最近更新 更多