Почему я получаю несовместимые типы из компилятора Java?
Я новичок в 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
маркированный message_data
? Я имею в виду ОБА имеют тип String
.. право??
3 ответа
Оба объекта могут представлять строку, но технически они не оба типа string. Вы можете создать строковый буфер из строки напрямую через new StringBuffer(message_data)
,
Нет, String
а также StringBuffer
абсолютно не связаны. Пытаться
message_data.append("LU62XCE0513: Request File I/O Exception =");
Пока мы на это: обратите внимание, что StringBuffer
это унаследованный класс, лучше заменить StringBuilder
в новом коде, за исключением маловероятного случая, когда вам нужно разделить объект между потоками. Это совместимо с источником, так что просто измените имя, и все в порядке.
Просто позвони message_data.toString()
при передаче сообщения Throwable