Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 13709|Resposta: 0

[Fonte] 3 maneiras de conseguir nomes de classes em Java!

[Copiar link]
Publicado em 02/04/2019 17:24:12 | | |
Método para obter o nome da classe
Existem três maneiras principais de obter nomes de classes em Java:

getName()
O retorno é a representação do nome da classe na máquina virtual.

getCanonicalName()
O que é retornado é uma representação mais compreensível do nome da classe.

getSimpleName()
Retorna a abreviação da classe.

Qual é a diferença?
Vamos pegar um exemplo para ver as principais diferenças.

O programa gera os seguintes resultados.

Nome do Método Nome da Classe
getName com.test.TestClass
getCanonicalName com.test.TestClass
getSimpleName TestClass

getName com.test.TestClass$TestInnerClass
getCanonicalName com.test.TestClass.TestInnerClass
getSimpleName TestInnerClass

getName [Lcom.test.TestClass$TestInnerClass;
getCanonicalName com.test.TestClass.TestInnerClass[]
getSimpleName TestInnerClass[]
[Lcom.test.TestClass$TestInnerClass; Vale a pena explicar.

Esta é uma codificação dos valores e parâmetros de retorno de uma função chamada JNI Field Descriptors (JavaNative Interface Field Descriptors).

[ representa um array, um representa um array unidimensional, como [[ representa um array bidimensional. Depois de L, que significa descritor de classe, finalmente; Indica o fim do nome da turma.

conclusão

1. Pelos resultados acima, pode-se ver que getName() e getCanonicalName() não são diferentes ao obter nomes de classes comuns, mas há uma diferença entre obter classes internas e classes de array.

2. getSimpleName() não é diferente ao obter nomes de classe comum e internos, mas há uma diferença ao obter classes de array.





Anterior:No boot Spring, o ouvinte persistente JPA intercepta adições, excluções e modificações
Próximo:java recebe o tipo de propriedade Object, nome da propriedade e valor da propriedade
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com