Почему я получаю несовместимые типы от компилятора java?
Я новичок в Java, но я опытный программист (ассемблер, COBOL, C/C++, REXX)
Я не могу понять, почему компилятор дает мне следующее:
[loading javalangThrowable.class(javalang:Throwable.class)]
srcLU62XnsCvr.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
, помеченный message_data
?
Я имею в виду, что оба типа String
.. так ведь ??3 ответа:
Оба объекта могут представлять строку, но они технически не являются оба типа string. Вы можете создать stringbuffer из строки непосредственно через
new StringBuffer(message_data)
.
Нет,
String
иStringBuffer
совершенно не связаны. ПопробуйтеОбратите внимание, чтоmessage_data.append("LU62XCE0513: Request File I/O Exception =");
StringBuffer
- это устаревший класс, который лучше всего заменить наStringBuilder
в новом коде, за исключением маловероятного случая, когда вам нужно разделить объект между потоками. Он совместим с исходным кодом, поэтому просто измените имя, и все будет в порядке.