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文件兼容性”和“源兼容性”中反映出来。
这应该解决了这个问题。