#compound-types #scala

def cloneAndReset(obj: Cloneable with Resetable): Cloneable = {
//...
}


If you want to change selection, open document below and click on "Move attachment"

Compound Types - Scala Documentation
here is no clone operation. To avoid type casts in such a situation, we can specify the type of obj to be both Cloneable and Resetable. This compound type is written like this in Scala: Cloneable with Resetable. Here’s the updated function: <span>def cloneAndReset(obj: Cloneable with Resetable): Cloneable = { //... } Compound types can consist of several object types and they may have a single refinement which can be used to narrow the signature of existing object members. The general form is: A with