Русские Блоги
Возвращает имя класса представление класса в виртуальной машине.
Возвращает, скорее всего, чтобы понять имена классов.
Возвращает аббревиатуру класса.
В чем разница?
К примеру, они смотрят на их основные различия.
public class TestClass < public static void main(String[] args) < // внешний обычный класс System.out.Println (название класса «Имя метода»); System.out.println("getName " + TestClass.class.getName()); System.out.println("getCanonicalName " + TestClass.class.getCanonicalName()); System.out.println("getSimpleName " + TestClass.class.getSimpleName()); System.out.println(); // внутренний класс System.out.println("getName " + TestInnerClass.class.getName()); System.out.println("getCanonicalName " + TestInnerClass.class.getCanonicalName()); System.out.println("getSimpleName " + TestInnerClass.class.getSimpleName()); System.out.println(); // класс массива TestInnerClass[] testInnerClasses = new TestInnerClass[]< new TestInnerClass(), new TestInnerClass(), new TestInnerClass() >; System.out.println("getName " + testInnerClasses.getClass().getName()); System.out.println("getCanonicalName " + testInnerClasses.getClass().getCanonicalName()); System.out.println("getSimpleName " + testInnerClasses.getClass().getSimpleName()); System.out.println(); > static class TestInnerClass < >>
Программа выводит следующие результаты.
Имя метода Название 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; Стоит explanating.
Это кодирование возвратов и параметров функции называется Javanative Интерфейс FieldDescriptors.
[ Представляет массивы, один представляет собой одномерный массив, например, [[ Представляет собой двумерный массив. Потом L Представление класса дескриптора, окончательный ; Обозначает конец имени класса.
в заключение
1. Из приведенных выше результатов, можно видеть, что GetName () и getcanonicalname () не отличается при получении нормального имени класса, который отличается от класса и класса массива внутреннего.
2, getSimpleName () ничем не отличается от обычного класса и имен внутренних классов, есть разница между получением класса массива.
Сканирование фокусировки на нашем общественном аккаунте WECHAT, не обновляйте каждый день.
Получение имени текущего класса в Java
Ситуация, типичная для начинающих разработчиков на Java: необходимо получить имя текущего класса. Как правило, этого можно достичь при помощи следующего кода:
String className = this.getClass().getName();
Однако, иногда Java добавляет к имени класса символ $ и число, что может ввести в заблуждение. Это случается, когда используется анонимный внутренний класс или класс, определенный внутри метода. В таком случае, Java добавляет $ и инкрементное число к имени внешнего класса, чтобы сгенерировать уникальное имя для внутреннего класса.
public class OuterClass < void someMethod() < Runnable r = new Runnable() < public void run() < String className = this.getClass().getName(); System.out.println(className); >>; r.run(); > >
В этом случае, если вызвать someMethod() у экземпляра OuterClass , то на консоль будет выведено OuterClass$1 , где 1 — это порядковый номер анонимного внутреннего класса.
Если же потребуется получать только имя внешнего класса, то можно использовать метод getSimpleName() , который вернет имя без пакета и без указания внутренних классов.
String className = this.getClass().getSimpleName();
Важно помнить, что имена классов в Java — это не просто строки. Они играют важную роль в идентификации классов во время выполнения программы. Поэтому любые «ненужные» символы, включая $ и номер после него, на самом деле выполняют важную функцию и не являются бессмысленными.
Определить имя класса в Java
В этом посте будет обсуждаться, как определить имя класса базового класса объектов в Java.
1. Класс get*Name() методы
Самый простой способ — вызвать getClass() метод, возвращающий имя класса или интерфейс, представленный объектом, не являющимся массивом. Мы также можем использовать getSimpleName() или же getCanonicalName() , который возвращает простое имя (как в исходном коде) и каноническое имя базового класса соответственно. getTypeName() является недавним дополнением к JDK в Java SE 8, которое внутренне вызывает getClass() .
Как на java вывести на экран текущее имя класса и пакета?
Вот эти две строчки выводят на экран класс System и его пакет. Подскажите метод, который выводит текущий класс и пакет.
Если можно подробно.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Вывести на экран текст: полное имя файла java.exe из установленного пакета java
Я тока недавно начал учить этот язык. Подскажите как это делается или приведите код к примеру. .
Как в Java ME вывести на экран текущее время?
Пробовал через класс DateField, но там нужно выставлять самому дату и время, а мне нужно что-бы он.
Вывести на экран имя класса
Можно как нибуть форматнуть в string имя класса? class HelloWorld < public: string s;.
Возможно ли как-то, зная имя класса, вернуть в каком-либо методе имя класса?
Добрый день! Интересуюсь. Есть Обобщенный метод, например: Add<T>(string nameElement). .
185 / 160 / 49
Регистрация: 30.07.2013
Сообщений: 508
System.out.println("Name of the current class:" + getClass().getName());
Регистрация: 05.08.2014
Сообщений: 4
Пробовал. Ругается на get. Пишет, что он не находит такого символа. error: cannot find stmbol
Регистрация: 12.04.2014
Сообщений: 46
есть подозрение что подобную информацию можно получить только от объекта
JButton b = new JButton(); System.out.println("Name of the current class:" + b.getClass());
Вывод: Name of the current class:class javax.swing.JButton
JButton b = new JButton(); System.out.println("Name of the current class:" + b.getClass().getName());
Вывод: Name of the current class:javax.swing.JButton
Регистрация: 05.08.2014
Сообщений: 4
А вот, что происходит, когда я пытаюсь вставить это к себе в код:
Регистрация: 12.04.2014
Сообщений: 46
server, для JButton нужен импорт javax.swing.JButton
Кликните здесь для просмотра всего текста
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
package javaapplication4; import javax.swing.JButton; public class JavaApplication4 { public static void main(String[] args) { JButton b = new JButton(); System.out.println("Name of the current class:" + b.getClass().getName()); } }
Регистрация: 05.08.2014
Сообщений: 4
185 / 160 / 49
Регистрация: 30.07.2013
Сообщений: 508
ты getClass() вызывал в методе main. Понятное дело что это работать не будет.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Вывести на экран название текущего месяца и текущее время
Никак не могу разобраться((( помогите, пожалуйста declare @d datetime declare @dd char=’15’.
Создайте командный файл, который спрашивает: «Вы хотите узнать текущее время или текущую дату?» – и в зависимости от ответа выдает на экран текущее вр
Здраствуйте очень сильно нужна помощь в написании батников кто может помогите пожалуйста. 1.
Вывести на экран текущее время + день + месяц в Visual Studio 2012
Подскажите пожалуйста как вывести на экран текущее время + день + месяц Язык Си, среда VS 2012 .
Как я могу вывести имя класса в котором я нахожусь (на данный момент выполняется программа)?
как я могу вывести имя класса в котором я нахожусь (на данный момент выполняется программа)? а.
java.exe -classpath имя класса — не выполняет класс.
Почему java.exe может не выполнять классы.Пишу java.exe -classpath имя класса, а она не хочет.
Как вывести информацию из класса на экран
Разработать класс Абитуриент (ФИО, класс, средний балл). Включить в класс указанные поля, сделав их.