A classe de objeto tem um método chamado, ToString (). Este método retorna uma representação de string do objeto de uma classe normal. Todas as classes herdam este método do objeto de classe. Cada matriz (como objeto) tem um método semelhante.
Infelizmente, essa representação da string do objeto é um código de texto curto (texto literal de string curto). Não é muito útil, embora possa ser decodificado. Essa decodificação não é abordada neste artigo. E assim, o programador precisa substituir esse método para ter uma representação do objeto; O usuário do computador vai apreciar isso. A substituição é abordada neste artigo.
Comportamento padrão do método tostring ()
Tipos primitivos
Tipos primitivos como o int existem por si só. No entanto, cada tipo primitivo em Java tem uma classe correspondente (invólucro). Quando se trata de converter objetos primitivos em cordas, são as classes correspondentes que devem ser usadas. O programa a seguir ilustra isso para o int. A classe correspondente para int é a classe inteira.
classe pública theClassA saída é 5. Se "Inteiro" fosse digitado como INT, uma mensagem de erro teria sido emitida no horário de compilação. O método tostring () da maior classe de ancestrais foi empregado aqui, sem nenhum problema. Isto é, o número inteiro, 5 foi convertido em uma corda e impresso sem nenhum problema. No entanto, se a classe fosse uma classe definida por programador ou outro tipo de classe predefinida, haveria algum problema.
Classe definida pelo programador
Considere o seguinte programa que imprime a representação do objeto definido pelo programador, OBJ:
classe AclassA saída é:
ACLASS@6FF3C5B5Este é um texto de codificação curto - não é muito útil para o usuário. O usuário pode ter preferido algo como:
prop1 => 1;Essas são as diferentes propriedades (campos) e seus valores. O que separa uma propriedade do seu valor na impressão é "=>", que deve ser introduzido pelo programador. Em uma pergunta como essa, os métodos geralmente não são impressos.
Variedade
Considere o seguinte programa, onde a matriz como objeto, arr, deve ser impressa:
classe pública theClassA saída é,
[Ljava.Lang.String;@d716361Qual é outro código de texto. É isso que você queria? Você adoraria ver algo como:
um dois trêsonde o separador de elementos está ",".
Lista
Considere o seguinte programa, onde um Arraylist como um objeto, Al, deve ser impresso:
importar java.util.*;A saída é:
[um dois três]A saída é muito boa! Isso significa que o programador não precisa substituir o objeto.ToString () Método quando se refere à Arraylist (ou possível lista em geral). No entanto, quando se trata de objetos definidos pelo programador ou da matriz, o programador precisa substituir o método.
Mapa
Considere o seguinte programa, onde um hashmap como objeto, HM, deve ser impresso:
importar java.util.*;A saída é:
One = 1, dois = 2, três = 3A saída é muito boa! Os pares de chave/valor são distinguíveis, com o separador de elementos, sendo ",". Isso significa que o programador não precisa substituir o objeto.ToString () Método, quando se preocupa com o hashmap (ou possível mapa em geral). No entanto, quando se trata de objetos definidos pelo programador ou da matriz, o programador precisa substituir o método.
O restante deste artigo lida com a substituição do objeto.ToString () Método herdado do objeto definido por programador e da matriz.
ToString substituído ()
Variedade
Com a matriz, hoje, a substituição é indireta ou solução alternativa. Java tem uma aula chamada, matrizes. Esta aula tem o método de tostring, já substituído por Java. Na classe, o método tostring () é estático: isso significa que a classe das matrizes não precisa ser instanciada para o seu método tostring () a ser usado. Aqui, o método tostring () leva um argumento, que é o identificador da matriz. Produz uma saída, onde o separador está ",". Matrizes de aula, está no java.util.* pacote. O programa a seguir mostra a solução alternativa para matrizes:
importar java.util.*;A saída é:
[10.1, 20.2, 30.3]A saída é muito boa! E assim, hoje, o programador não precisa mais codificar um método de substituição, para o método ToString (), para Java Array. O programador faz uma solução alternativa com as matrizes e seu toque ().
Objeto definido pelo programador
Com a classe definida pelo programador, o método tostring () da classe de objeto só precisa ser redefinido, conforme ilustrado na seguinte classe definida por programador:
classe AclassA técnica é usar o operador de concatenação de string, + para se juntar aos literais que não são de cordão com literais de string. O "@Override" anterior impede certos erros no método substituído. Redefinição aqui está substituindo. Uma classe definida pelo programador corresponde ao objeto definido por programador. O método Java Main () a seguir é apropriado para a classe acima:
classe pública theClassA saída é:
Prop1 => 1Esta saída é melhor apreciada pelo usuário do que o código de texto curto, “Aclass@6FF3C5B5”. Não se esqueça que a definição primordial ocorre na classe de interesse.
Conclusão
A classe de objeto tem um método chamado, ToString (). Este método retorna uma representação de string do objeto de uma classe. Todas as classes herdam este método do objeto de classe. Cada matriz (como objeto) tem um método semelhante. Cada classe precisa substituir esse método, indiretamente ou diretamente.
Com tipos primitivos, use os tipos de referência (e.g., Inteiro para int), onde Java já possui um método ToString () substituído predefinido, que é satisfatório. Com listas e mapas também, o Java já possui um método ToString () substituído () predefinido, que é satisfatório. Com uma matriz, faça uma solução alternativa: use o método ToString () da aula de matrizes. Com a classe definida pelo programador, faça a substituição real, usando o operador de concatenação da String, +, o mais rápido possível.