Soluções para problemas encontrados ao usar o método clone() (JAVA)

Geralmente encontramos 4 problemas consecutivos ao usar esse método em tipos personalizados.

O código básico é o seguinte:

class A {
    int[] a = {1,2,3};
}

public class Test {
    public static void main(String[] args) {
        
    }
}

Primeiro:

A razão do erro quando o chamamos diretamente é que o método clone na classe Object está protegido e precisa ser reescrito.

o segundo:

A razão pela qual relatamos um erro após a reescrita é que o método clone pode lançar uma exceção CloneNotSupportedException e é uma exceção verificada, portanto, precisamos tratá-la.

O terceiro:

Depois de tratarmos a exceção CloneNotSupportedException acima, haverá uma nova exceção. O motivo é porque o tipo de objeto retornado pelo clone precisa ser forçado.

o quarto:

Depois que todos os problemas acima forem resolvidos, à primeira vista parece estar tudo bem, mas quando o executamos, um erro será relatado novamente. Diz que esta classe não suporta clonagem.

A solução neste momento é deixar a classe clonada implementar a interface Cloneable e pronto.

Nota: O método clone() tem como padrão cópia superficial.

Acho que você gosta

Origin blog.csdn.net/2302_76339343/article/details/133818982
Recomendado
Clasificación