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() ); } }
Check your compliance level...
自Java SE 5开始, PrintStream#printf
方法可用。看起来您的代码正在由Java 4或之前编译/评估。
查看JDK安装和/或IDE设置,了解它如何编译/评估代码。
顺便说一句,如果使用Eclipse和Java 8,Eclipse需要一个插件来识别Java 8应用程序,因此默认情况下,求值程序会将项目降级为Java 1.4。 这发生在我身上,我通过在Eclipse Kepler中安装更新来解决它。 Eclipse Luna(最新的Eclipse版本)说它支持Java 8,但对我不起作用(不确定我是否遵循正确的步骤或做错了什么,但回到开普勒并且工作正常)。
这可能听起来很奇怪,但您可以将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()} );
有帮助。
我很抱歉我以前的post说我有同样的问题,我没有读过“在你发布阅读之前”对话框,说不要这样做。 嗯,经过很长一段时间寻找答案,我自己想通了。 在Preferences-> Java-> Compiler框中,左上角有一个名为“Configure Project Specific Settings …”的按钮。 单击它并将合规性级别更改为> = Java 1.5,或将其关闭。 繁荣,固定。
你可能需要改变执行环境,如果它不是java SE 1.8它可能是CDC或者其他的,所以你需要将它改为图1中的java SE 1.8细节1.expand你的项目然后2.right点击JRE系统库最后选择属性3.如果环境不是java SE 1.8,请将其更改为