0

私が作成している SWT ウィンドウに色を付けるためにTextStyleとを使用しています。Styler

私のStyler方法に問題がありapplyChanges()ます。Stylerこのメソッド ( SWT の作成者によって組み込まれた抽象メソッド) は、TextStyleオブジェクトを受け取り、それに書式を適用します。たとえば、次のようになります。

public void applyStyles(TextStyle textStyle) {
    textStyle.background = new Color(null, new RGB(102, 0, 58));
    //yada yada
}

ただし、スタイルを直接適用する代わりに、すべてのスタイルを既に保持している属性を割り当てたいと考えています。言い換えれば、私はこれを試しています:

public void applyStyles(TextStyle textStyle) {
    textStyle= this.textStyleAttributeStyle;

}

残念ながら、これは機能していませんが、たとえば次のように、属性を1つずつコピーすると、参照によって属性を渡すことに関係があると思います

public void applyStyles(TextStyle textStyle) {
        textStyle.background= this.textStyleAttributeStyle.background;

    }

それはうまくいきます!

私の質問は、すべての属性の完全なクローン/コピーを提供し、textStyleAttributeStyleそれを対応する属性にtextStyle最短のコードでコピーするにはどうすればよいですか?

4

1 に答える 1

0

Java Deep Cloning Libraryが役に立つと思います。

Cloner cloner=new Cloner();

MyClass clone=cloner.deepClone(o);
// clone is a deep-clone of o
于 2013-06-14T16:19:24.710 に答える