Polymorphic copy: Difference between revisions

add E example
No edit summary
(add E example)
Line 114:
}
</lang>
 
=={{header|E}}==
 
In E, a generic copy for all objects can be built out of the serialization facility, by connecting an object recognizer to an object builder without even using any intermediate serialized form:
 
<lang e>def deSubgraphKit := <elib:serial.deSubgraphKit>
 
def copy(object) {
return deSubgraphKit.recognize(object, deSubgraphKit.makeBuilder())
}</lang>
 
Since E does not have any static dispatch, this cannot be non-polymorphic without also being non-generic. An example showing that it does indeed make copies.
 
<lang e>? def a := [1].diverge()
# value: [1].diverge()
 
? def b := copy(a)
# value: [1].diverge()
 
? b.push(2)
? a
# value: [1].diverge()
 
? b
# value: [1, 2].diverge()</lang>
 
(When I have time I will design a usage example which better conforms to the task description. --[[User:Kevin Reid|Kevin Reid]] 04:12, 1 March 2009 (UTC)) [[Category:E examples needing attention]]
 
=={{header|Java}}==