【问题标题】:How to Force ObjectUtil.copy() to copy Transient attribute如何强制 ObjectUtil.copy() 复制瞬态属性
【发布时间】:2012-01-09 00:38:56
【问题描述】:

我想强制 ObjectUtil.copy() 方法复制瞬态属性...

您有解决方案吗?或者您知道复制我的对象的另一种方法吗?

非常感谢,

蝙蝠

【问题讨论】:

  • 什么是瞬态属性?类的属性?还是您指的是元数据?
  • 我个人认为“我不明白这个问题”不是一个很好的理由来否决这个问题。瞬态属性是用 [Transient] 元数据标记标记的属性,因此它不会被发送回服务器。不,我没有答案,但我赞成它,所以人们不会认为这个问题有问题。
  • @AmyBlankenship 我认为这个问题不清楚;这就是我问后续问题的原因。元数据是类的一个方面;并且不是需要在类的实例之间复制的东西。多亏了 MXML,通用术语“属性”可以指代属性、实例变量、样式或事件侦听器。目前尚不清楚这张海报想要做什么。我不明白这个问题,因为它写得不好。这就是我投反对票的原因。
  • 一个属性用元数据标记,这使得它是暂时的。需要复制的不是元数据,而是属性。显然,将属性标记为瞬态可以防止它被复制(这是有道理的)。英语不是每个人的第一语言,这个问题很好。
  • 确实,对我来说,瞬态属性意味着我这样定义我的属性:[Transient] public var MyVar:String。我知道“瞬态”的定义意味着它不会发送到服务器,顺便说一下不会被函数 ObjectUtil.copy() 复制。但是我的问题是,您是否知道另一种解决方案来制作具有瞬态属性的对象的副本?谢谢

标签: actionscript-3 apache-flex copy transient


【解决方案1】:

很遗憾,没有。

[Transient]byteArray.writeObject() 都是本机播放器实现。无法修改它们的行为/实现。

您需要考虑编写自己的复制实用程序方法。

【讨论】:

  • 我也有类似的情况。如何手动复制包括瞬变在内的所有属性?
【解决方案2】:

我用 getter 函数解决了这个问题,我在 ma getter 函数中设置了一个条件,以了解我是否处于想要复制瞬态变量的上下文中

public function get myVar():Object {
if (WantCopyTransient)
  return _myVar;
else
  return null;
}

感谢您的回答

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-21
    • 2011-02-10
    • 1970-01-01
    • 2012-05-19
    • 2020-01-08
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多