String类型中的方法格式(String,Object )不适用于参数(…)

这是我的代码:

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) 

为什么我在这里收到此错误,如何解决?

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

项目>属性> Java编译器

您还可以参考以下主题:

为什么我用简单的printf得到编译错误?

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

你有jdk 1.4或更低版本。 String.format()方法在Jdk 1.5引入。

看看coderanchpost。

我要投票给干净的身材。 没有理由它会像这样失败,尤其是当您尝试手动装箱到整数时。 你在用Eclipse吗? 有时它会感到困惑,你只需要重建一切。

格式的签名是:

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

并且在您的代码中似乎没有任何错误,因为我的建议尝试使用控制台应用程序运行它而不使用任何IDE(用于测试目的)。

你在用eclipse吗?

如果是这样的话,当一切看起来都是正确的时候,会出现这样的问题。 以下是我刚刚解决的问题:

  • 右键单击项目,然后转到properties-> Java Compiler
  • 您将看到最新的编译器合规级别(在我的情况下为1.7)在下拉列表中设置(“编译器合规级别”)。 在“生成的.class文件兼容性”和“源兼容性”中也可以看到相同的版本。

现在:

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

这应该解决了这个问题。