Имя класса в Java
У объекта Class есть несколько строковых представлений
имени. Полное имя нужно для загрузки и логов, короткое -
для сообщений пользователю, имя пакета - чтобы понять,
где тип лежит в иерархии модулей.
Метод getName возвращает полное имя на JVM. Для
класса из пакета в строке будут и пакет, и имя типа:
package billing;
public class Ledger {
private int balance;
public Ledger(int balance) {
this.balance = balance;
}
}
import billing.Ledger;
public class Main {
public static void main(String[] args) {
Class<?> kind = Ledger.class;
System.out.println(kind.getName());
}
}
Метод getSimpleName отбрасывает пакет и оставляет
только имя класса:
import billing.Ledger;
public class Main {
public static void main(String[] args) {
System.out.println(Ledger.class.getSimpleName());
}
}
Метод getPackageName даёт имя пакета без точки
в конце. Для типа в корне пакета по умолчанию вернётся
пустая строка:
import billing.Ledger;
public class Main {
public static void main(String[] args) {
System.out.println(Ledger.class.getPackageName());
}
}
Для массивов getName использует служебную запись
с квадратными скобками, а getSimpleName добавляет
суффикс []. Это удобно помнить, когда тип
получают рефлексией из данных, а не из литерала в коде.
Объявите класс Route в пакете routes.
Напечатайте три строки: полное имя, короткое имя
и имя пакета средствами класса Class.