Qual é a diferença entre getName(), getCanonicalName() e getSimpleName() em Java?
Olá! Acabei de começar a estudar reflexão em Java e me deparei com três métodos: `getName()`, `getCanonicalName()` e `getSimpleName()`. Não entendo muito bem como eles diferem.
Por exemplo, tenho uma classe simples `Person` no pacote `com.example.model`. Tentei escrever o seguinte código:
```java
package com.example.model;
public class Person {
public static void main(String[] args) {
Class> clazz = Person.class;
System.out.println("getName: " + clazz.getName());
System.out.println("getSimpleName: " + clazz.getSimpleName());
System.out.println("getCanonicalName: " + clazz.getCanonicalName());
}
}
```
Todos os três métodos exibem algo semelhante: `getName` mostra `com.example.model.Person`, `getSimpleName` — apenas `Person`, e `getCanonicalName` — também `com.example.model.Person`. Mas ouvi dizer que para classes aninhadas ou arrays eles podem diferir. Pode explicar com exemplos reais em quais situações esses métodos dão resultados diferentes?
No answers yet.
Faça login para deixar uma resposta
Blogs
Microsserviços em PHP: arquitetura e guia prático