0

我正在使用TextStyleStyler在我正在创建的 SWT 窗口中提供着色。

我的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;

}

不幸的是,虽然这不起作用,但我相信它与通过引用传递属性有关,因为当我一一复制属性时,例如

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

    }

效果很好!

所以我的问题是,如何以最短的代码量提供每个属性的完整克隆/副本textStyleAttributeStyle并将其复制到相应的属性中?textStyle

4

1 回答 1

0

我认为Java 深度克隆库可能对您有用,

Cloner cloner=new Cloner();

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