java - 找不到符号错误_PrintWriter.printf() 方法_
问题描述
我正在尝试将格式化的文本写入带有PrintWriter.printf()
.
在ubuntu(Java 版本为 1.6.0_41)上编译时出现错误:
cannot find symbol method printf(java.lang.String, int)
我尝试了该方法printWriter.format ()
,但给出了相同的错误。
在Windows(Java 版本为 1.8.0_162)上它可以工作。
这是包含错误的方法:
public void fileWriting(TestSerialMsg message) throws IOException {
FileWriter fileWriter = new FileWriter("ReceivedMsg.txt");
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.print("Some String");
printWriter.printf("received counter is %d",message.get_counter());
printWriter.close();
}
错误 :
TestSerial.java:85: cannot find symbol
symbol : method printf(java.lang.String,int)
location: class java.io.PrintWriter
printWriter.printf("received counter is %d",message.get_counter());
^
1 error
解决方案
方法的第二个参数printf
是一个数组Object
。您的方法返回的值message.get_counter()
是int
原语而不是Object
. 因此,没有printf
方法接受两个参数的消息,其中第一个是 a String
,第二个是 a int
。
Integer
从返回的值创建一个,message.get_counter()
并在调用 method 时将其用作第二个参数printf
,即
printWriter.printf("received counter is %d", Integer.valueOf(message.get_counter()));
或者,您可以使用 methodprintln
而不是printf
,如...
printWriter.println("received counter is " + String.valueOf(message.get_counter()));
推荐阅读
- java - Maven 自动跳过测试
- javascript - 粘性导航和响应式导航代码相互破坏
- c++ - 在 Eclipse 的 C++ 中链接一个 .lib 并在 Windows 中使用 .dll
- google-sheets - 找不到带有“/d/e”的 url 的 google 电子表格 ID?
- java - Java XML removeChild 不起作用?
- mysql - MySql return 从函数中存在(exists and count)
- java - 工资单数组 Java 计算
- ios - UIButton touchDragEnter 和 touchDragExit 调用太频繁
- c++ - C++ 模板 - 浮点和整数类型的不同专业化
- hibernate - 有没有一种简单的方法将表单对象映射到 Springboot 中的实体对象?