在 Java 中如何給一個對象賦值 ??? (100分)

  • 主题发起人 主题发起人 zwhc
  • 开始时间 开始时间
Z

zwhc

Unregistered / Unconfirmed
GUEST, unregistred user!
[h1][red]在 Java 中[/red][/h1]
obj1=obj2;
此時賦值號右邊為一個對象名,賦值運算符將右邊表達式所
得的對象的引用賦值給它,而不是為這個對象開辟新的內存
單元空間並把右邊對象的所有內容賦值給它。

如何為這個對象開辟新的內存單元空間並把右邊對象的所有內容賦值給它???????????
 
obj1.assign(obj2)
 

Procedure Assign(Source : TPersistent) : Override
Description
The Assign method copies all properties from a Series component to another.
Only the common properties shared by both source and destination Series are copied.
The following code copies all properties from Series2 into Series1:
Series1.Assign( Series2 ) ;
Some Series types restore property values after assigning them. For example, TPointSeries
restores the Pointer.Visible property to True after being assigned to a TLineSeries, which has
Pointers invisible by default.
Note: Series events are not assigned. Series DataSource and FunctionType properties are
assigned. Assign is used by CloneChartSeries and ChangeSeriesType methods for example.
 
一般用clone
 
有些對象無法 clone,必須令其 implements Cloneable
 
哦,要通用的赋值我看只能这样:
1。测试是不是clonable,如果是就clone
2。用reflect方法测试是否有copy constructor,如果有就new一个
3。看看是不是serializable,如果是就从新导一个object出来(??transient field)
4。用reflect读出每个field,对每个field递归使用1。-- 4。(??primitive data)
另外,可能需要另外考虑array object
不知道是不是有更好的方法[:(]
 
后退
顶部