我需要让这段代码工作,但无法弄清楚出了什么问题。这是一个System.out.format()问题

时间:2014-04-17 01:41:16

标签: java system.out

我似乎无法将此代码格式化。我一直收到这个错误:

Exception in thread 
    "main" java.lang.Error: Unresolved compilation problem: 
    The method format(String, Object[]) in the type PrintStream is not applicable 
    for the arguments (String, int, double) at 
    org.lineware.learningjava.Root2.main(Root2.java:9)

以下是代码:

public class Root2 {

    public static void main(String[] args) {
        int i = 2;
        double r =  Math.sqrt(i);
        System.out.format("The square root of %d is %f.%n", i, r);
    }
}

1 个答案:

答案 0 :(得分:2)

在Java 5中添加了变量参数(varargs)。在此之前,您尝试使用的format(..)方法被声明为

public PrintStream format(String format, Object[] args) {

换句话说,它期望一组对象。从Java 5开始,该方法被声明为

public PrintStream format(String format, Object... args) {

使用varargs syntax。您可能正在使用低于Java 5的编译器版本。