Рассматривают следующий кодс StringBuffer, как достичь 100% неизменности. Я хочу сделать это только с помощью stringbuffer. ни один другой тип данных
final class immudemo
{
private static final StringBuffer bf = new StringBuffer("Yaxita");
public StringBuffer getter()
{
return bf;
}
}
public class HelloWorld{
public static void main (String args[])
{
immudemo obj1 = new immudemo();
StringBuffer bf2 = obj1.getter();
bf2.append("Shah");
System.out.println(obj1);
}
}
в коде выше, даже если StringBuffer объявлен как окончательный я могу изменить его. Может ли кто-нибудь помочь мне, как достичь 100% неизменности?
P.S. : Я хочу достичь этого с помощью StringBuffer только. Если вы предоставите что-либо, пожалуйста, проверьте, что он должен быть связан только с StringBuffer.
Erm, используйте String, а не Stringbuffer? Я имею в виду, что это точка Stringbuffer, что она изменена в отличие от обычных строк. Изменить: кроме этого, нет операции, чтобы сделать изменяемый класс неизменным. Если вы хотите, чтобы класс был неизменным, он должен быть запрограммирован именно так. Но я до сих пор не понимаю, какова точка неизменяемого StringBuffer. –
это правильно .. но меня попросили сделать это только с StringBuffer. Вопросник хотел знать, как я могу создать пользовательский класс, который на 100% неизменен. –
@YaxitaShah, как вы упомянули в своем комментарии. «Вопросник хотел знать, как я могу создать определенный пользователем класс, который на 100% неизменен». Он хотел знать, как создать собственный класс с такой же функциональностью, как и для класса String, и как вы достигнете непреложности в нем. –