printf方法不起作用

时间:2014-05-17 17:51:52

标签: java printf

这是我第二次尝试使用PrintWriter#printf方法,并收到此错误消息:

  

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

我正在使用的代码有两个类。

这是第一堂课:

class apples4 {
    public static void main(String[] args) {
    tuna4 tuna4Object = new tuna4("Kelsey");
        tuna4Object.saying();
    }
}

这是第二堂课:

public class tuna4 {
    private String girlName;

    public tuna4(String name) {
        girlName=name;
    }

    public void setName(String name) {
        girlName=name;  
    }

    public String getName() {
        return girlName;
    }

    public void saying(){
        System.out.printf("Your first girlfriend was %s\n", getName() );
    }
 }

5 个答案:

答案 0 :(得分:3)

Check your compliance level...

enter image description here

答案 1 :(得分:0)

自Java SE 5以来,

PrintStream#printf方法可用。看起来您的代码正在由Java 4或之前的代码编译/评估。

查看您的JDK安装和/或IDE设置,了解它如何编译/评估您的代码。


顺便说一句,如果使用Eclipse和Java 8,Eclipse需要一个插件来识别Java 8应用程序,因此默认情况下,求值程序会将项目降级为Java 1.4。这发生在我身上,我通过installing an update in Eclipse Kepler解决了这个问题。 Eclipse Luna(最新的Eclipse版本)说它支持Java 8,但对我不起作用(不确定我是否遵循正确的步骤或做错了什么,但回到开普勒并且工作正常)。

答案 2 :(得分:0)

听起来可能很奇怪,但您可以将getName()方法的返回值强制转换为Object:

System.out.printf("Your first girlfriend was %s\n", (Object) getName());

或者(创建请求的数组)甚至

System.out.printf("Your first girlfriend was %s\n", new Object[] {(Object) getName()} );

可以提供帮助。

答案 3 :(得分:0)

我很抱歉我以前的帖子说我遇到了同样的问题,在你发布阅读之前我没有读过这个问题"对话框说不要这样做。好吧,经过很长一段时间寻找答案,我自己想出来了。在Preferences-> Java->编译器框中,左上角有一个名为"配置项目特定设置..."的按钮。单击它并将合规性级别更改为> = Java 1.5,或将其关闭。繁荣,固定。

答案 4 :(得分:0)

如果它还不是java SE 1.8,您可能需要更改执行环境 它可能是CDC或其他,所以你需要将它改为java SE 1.8 图片1.expand ur project then 2.right click on JRE System Library and choose properties finally 3. if the environment is not java SE 1.8 ,change it to become so

中的详细信息