Почему я получаю несовместимые типы от компилятора 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в новом коде, за исключением маловероятного случая, когда вам нужно разделить объект между потоками. Он совместим с исходным кодом, поэтому просто измените имя, и все будет в порядке.