0

しかし、始める前に...-文字通り、これは私が書いたすべてのコードです:

package com.my.package;

public class SBuffer extends StringBuffer
{

}

Eclipseは私にこのエラーを与えています:

The type SBuffer cannot subclass the final class StringBuffer.

したがって、StringBufferはFINALクラスであり、開始する前にかなり沈んでいるようです。私は、これを回避するためのいくつかの提案を(私よりもはるかに知識のある)コミュニティに尋ねるべきだと思いました。

何か案は?

4

2 に答える 2

3

回避策は、ここからソースコードを(少なくとも標準のJDKから)取得し、コードをクラスにコピーして拡張することです

于 2012-11-29T14:14:01.517 に答える
3

StringBuffer と をコピーし AbstractStringBuilder、それぞれのパッケージを変更し、必要に応じて変更する必要がありStringBufferます。

StringBuffer拡張AbstractStringBuilderし、後者はパッケージプライベートであるため、単純にコピー/変更することはできません。


Appendable別の方法として、とのカスタム サブクラスを作成することもできますCharSequenceStringBufferこれにより、必要のない機能や、特定のユース ケースでのパフォーマンスに悪影響を与える可能性のある機能を 除外するオプションが提供されます。

クラスが実際のクラスのサブクラスになることができないという事実は、 APIStringBufferを模倣したり、その動作に準拠したりする必要がなくなったことを意味します。StringBuffer

于 2012-11-29T14:17:53.220 に答える