I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Nej det er ikke rigtigt, husk på at alle klasser nedarver fra java.lang.Object hvis ikke du specificerer en extends klasse der skal nedarves fra. Du kan bare implementere Cloneable (der er et marker interface, så du skal ikke implementere nogen metoder).
Problemmet er bare at hvis det objekt du vil kopiere indeholder andre objekter så bliver de ikke klonet, kun deres reference bliver kopieret.
Jævnfør: The method clone for class Object performs a specific cloning operation. First, if the class of this object does not implement the interface Cloneable, then a CloneNotSupportedException is thrown. Note that all arrays are considered to implement the interface Cloneable. Otherwise, this method creates a new instance of the class of this object and initializes all its fields with exactly the contents of the corresponding fields of this object, as if by assignment; the contents of the fields are not themselves cloned. Thus, this method performs a "shallow copy" of this object, not a "deep copy" operation.
Jeg troede bare at en "clone" var en funktion, der kunne bruges. Hvis man skal overskrive den kan det være lige meget. Jeg skal det bruge da jeg har et objekt som består af en arrayliste af objekter. Jeg har en accessor, men hvis jeg ikke sender en kopi kan den ændres, og det må den ikke. Nå, men tak for hjælpen.
I så fald har du ikke brug for at clone noget. Du kan i stedet sende en immuterbar liste istedet: ArrayList list = ...; List l = Collections.unmodifiableList( list ); l kan så ikke ændres og du kan sende den videre.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.