为什么我从java编译器中获取不兼容的类型?

时间:2011-04-22 16:44:22

标签: java string stringbuffer

我是Java新手,但我是一位经验丰富的程序员(汇编程序,COBOL,C / C ++,REXX)

我无法理解为什么编译器会给我以下内容:

[loading java\lang\Throwable.class(java\lang:Throwable.class)]
src\LU62XnsCvr.java:265: incompatible types
found   : java.lang.String
required: java.lang.StringBuffer

代码:

message_data = "LU62XCE0513: Request File I/O Exception =" ;

我已将message_data定义为:

static StringBuffer message_data = new StringBuffer();

那么为什么我不能将简单的文字String放入标有StringBuffer的{​​{1}}中? 我的意思是两种类型message_data ..对吗?

3 个答案:

答案 0 :(得分:7)

不,StringStringBuffer完全无关。尝试

message_data.append("LU62XCE0513: Request File I/O Exception =");

虽然我们注意到了这一点:请注意StringBuffer是一个遗留类,在新代码中最好用StringBuilder替换,除非您需要跨线程共享对象。它的源码兼容,所以只需更改名称即可。

答案 1 :(得分:1)

两个对象都可以表示字符串,但它们不是类型字符串。您可以通过new StringBuffer(message_data)直接从字符串创建字符串缓冲区。

答案 2 :(得分:-2)

将消息传递给message_data.toString()

时,只需致电Throwable即可