ここでJava初心者が助けを求めています。問題のコードは次のとおりです。
public void generateCodeTable(Node tree, StringBuffer buf) {
if (tree != null) {
StringBuffer newSB = new StringBuffer();
newSB.append(buf);
if (tree.key != '$') {
System.out.print(tree.key + "(" + buf + ") " );
} else {
System.out.print(tree.key + "(" + buf + ") " );
}
generateCodeTable(tree.getLeftNode(), newSB.append(1));
generateCodeTable(tree.getRightNode(), newSB.append(0));
}
これが行うことは、再帰ループのすべての反復で同じStringBufferに継続的に追加することです。実際にそれを実行できるようにしたい場合は、毎回まったく新しいStringBufferを作成します。新しいStringBufferを強制的に作成する方法はありますか?
うまくいけば、それは理にかなっています。明確にできる場所を教えてください。ありがとうございました!:)