【问题标题】:Java printf gives "change type to Object" errorJava printf 给出“将类型更改为对象”错误
【发布时间】:2014-06-23 18:54:39
【问题描述】:

由于某种原因,在 Eclipse 中,对于“格式”,我在此处收到错误“将 'i' 的类型更改为 'Object[]'”:

int i = 461012;
System.out.format("The value of i is: %d%n", i);

我在使用 JDK 7 和 8 时遇到此错误(为了安全起见,我尝试依次重新安装这两个版本,并尝试了最新的 eclipse 下载)。

我很困惑为什么我不能在这里使用 int。此示例直接来自 Oracle 文档的格式。 printf 给出了同样的错误。

人们会认为,如此简单的东西应该是健壮和可靠的。

编辑中:

抱歉,这是对我不起作用的完整代码。

public class Main {

    public static void main(String[] args) {
        int i = 461012;
        System.out.format("The value of i is: %d%n", i);

    }

}

当我将鼠标悬停在“格式”上时,这正是我在 Eclipse 中看到的内容:

PrintStream 类型中的方法 format(String, Object[]) 不是 适用于参数(String, int)

1 个快速修复可用:

将“i”的类型更改为“Object[]”。

这有帮助吗?

【问题讨论】:

  • 请打印出准确的完整错误消息,以及您正在使用的准确代码。我怀疑问题存在于我们没有看到的代码中。
  • 这对我来说似乎很好用。您能否将整个代码发布为错误消息。 (对不起,我不小心做了这个回答)。
  • 在您发布完整的堆栈跟踪和您正在使用的代码之前,我认为这不会起作用
  • 变量foo 没有出现在您发布的代码中的任何位置
  • 在这里工作正常。您显然没有向我们展示失败的实际代码,如果没有代码和实际错误消息(复制/粘贴,而不是解释),我们将无能为力。

标签: java eclipse


【解决方案1】:

我能想到的唯一原因是您的 Java 合规级别设置为 1.4。我认为这很可能导致观察到的错误。 Java 1.4 中不存在 Printf

检查您的项目的编译器合规级别是否设置为至少 1.5。

This answer 展示了如何在 Eclipse 中更改合规级别

【讨论】:

  • 这有帮助吗?如果不是,Eclipse 可能还有其他问题。尝试在控制台中运行
  • 谢谢。就是这样。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多