생성자 안에 StringBuffer/StringBuilder를 사용하여 새 객체를 만들 때 임시 변수를 만들어 초기화 된 클래스 변수에 전달해야하는 것 같습니다. 즉, 새 인스턴스를 만들 때 생성자에서 Number (아래 예)로 변경 한 내용이 임시 변수를 사용하지 않는 한 객체 변수의 값에 영향을 미치지 않습니다. 예를 들어 :Java 생성자 내의 StringBuffer?
public class Some_class {
public static class algorithm{
String sNumber = "";
algorithm(String num){
String temp = new StringBuilder(num).reverse().toString();
sNumber = temp;
//the below expression does not work:
//sNumber = new StringBuilder(num).reverse().toString();
}
는 나는 새의 StringBuilder라는 이름 때문에/StringBuffer와 같은 이름을 반대하는 것이,이 sNumber 변수를 초기화 이전의 값을 대체 할 가정 -하지만 그렇지 않다. 이것을 할 수있는 적절한 방법이 있습니까?
주석을 달았습니다 코드 절대적으로 잘 작동합니다. 문제를 시연하는 짧지 만 완전한 프로그램을 보여주세요. 그렇게하기 위해 더 이상 문제가되지 않는다는 것을 강하게 의심합니다 (예 : 이전에 잘못 진단했거나 다른 곳에서 문제를 발견 한 것). –
혹시 정말로'String sNumber = new StringBuilder (num) .reverse(). toString();'라고했을까요? – ajb
너희들 모두 정확하다, 특히 @ajb. 내 작업 공간에서'String sNumber = new StringBuilder (num) .reverse(). toString();'이라고 쓰고 왜 작동하지 않는지 알 수 없었습니다. 내가 여기 왔을 때, 나는 그걸 올바른 방법으로 썼고 그것이 틀렸다고 생각했다. – Eyeofpie