Java — название класса
Подскажите пожалуйста, как сравнить название класса с заданной строкой( строка введена пользователем). Можно ли как-то записать название класса в строковую переменную?
Отслеживать
задан 24 дек 2013 в 18:06
31 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Ну конечно можно.
String name = MyClass.class.getName();
String name = MyClass.class.getSimpleName();
Тогда будет короткое имя класса, без имени пакета. Или так:
MyClass my = new MyClass(); String name = my.getClass().getName();
Отслеживать
ответ дан 24 дек 2013 в 18:11
Vladislav Pyatkov Vladislav Pyatkov
1,975 12 12 серебряных знаков 12 12 бронзовых знаков
- java
- ооп
- классы
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
[java] имя класса, имя метода
а если метод класса статический ? как из него узнать имя класса ?
может и им метода можно узнать ?

xtron ★
23.09.09 15:50:46 MSD
Re: [java] имя класса, имя метода
можно получить список методов класса, а там уже угадывать нужный например по числу аргументов.
Lucky1 ★★★
( 23.09.09 16:36:38 MSD )
Ответ на: Re: [java] имя класса, имя метода от Lucky1 23.09.09 16:36:38 MSD

Re: [java] имя класса, имя метода
угадывать это круто
xtron ★
( 23.09.09 16:39:04 MSD ) автор топика
Ответ на: Re: [java] имя класса, имя метода от xtron 23.09.09 16:39:04 MSD

Re: [java] имя класса, имя метода
Ну уж не угадывать, а по сигнатуре доставать )
Amp ★★★
( 23.09.09 17:08:37 MSD )

Re: [java] имя класса, имя метода
все же как сделать this.getClass().getName() из статического метода ? :)))
xtron ★
( 23.09.09 17:23:12 MSD ) автор топика
Ответ на: Re: [java] имя класса, имя метода от xtron 23.09.09 17:23:12 MSD
Re: [java] имя класса, имя метода
roy ★★★★★
( 23.09.09 17:27:38 MSD )
Ответ на: Re: [java] имя класса, имя метода от roy 23.09.09 17:27:38 MSD
Re: [java] имя класса, имя метода
roy ★★★★★
( 23.09.09 17:28:01 MSD )
Ответ на: Re: [java] имя класса, имя метода от xtron 23.09.09 17:23:12 MSD
Re: [java] имя класса, имя метода
Вот ещё вариант
roy ★★★★★
( 23.09.09 17:29:55 MSD )
Ответ на: Re: [java] имя класса, имя метода от roy 23.09.09 17:28:01 MSD

Re: [java] имя класса, имя метода
ага спасибо большое ! первый вариант то что нужно для определения имени класса из статической функции.
может еще и пример для определения имени самой статической функции класса либо метода класса подскажите ?
xtron ★
( 23.09.09 17:59:19 MSD ) автор топика
Ответ на: Re: [java] имя класса, имя метода от xtron 23.09.09 17:59:19 MSD
Re: [java] имя класса, имя метода
По второй же ссылке было дано направление копания:
public class MainClass < public static void main(String[] args) < staticMethod(); >public static void staticMethod() < Exception ex = new Exception(); System.out.println(ex.getStackTrace()[0].getMethodName()); >>
roy ★★★★★
( 24.09.09 05:39:11 MSD )
Ответ на: Re: [java] имя класса, имя метода от roy 24.09.09 05:39:11 MSD

Re: [java] имя класса, имя метода
спасибо сделал через getStackTrace надаеюсь на скорости приложения все это не скажется.
Как получить имя класса java
прочитал пару статей в группе. Выспался. Прочитал комменты. Перечитал еще раз. Стало более менее читабельно.
Град Уровень 47
19 ноября 2022
что тебе понятно? мне вот вообще ничего не понятно ;-;
1 июня 2022
Если я захочу использовать, например, Scanner, в будущем, мне нужно импортировать пакет с ним в свой класс? Для этого он должен где-то на компе храниться? И каждый раз мне нужно указывать туда путь?
30 апреля 2022
Что-то похожее на «include» в PHP, только в Java «import» лишь для классов предназначен. Пока что инфы нет, что еще можно импортировать через «import» в Java.
22 февраля 2022
Получается полный путь к классу java.io.FileInputStream — это папка 1: «java«, папка 2: «io«, файл: FileInputStream. А это тогда путь чего указан? — («c:\\data.txt«)
Сергей Жирков Уровень 41
2 октября 2021
xseiter Уровень 11
11 мая 2021
java.io.IOException;
в конце точка с запятой стоит из-за того, что данный класс указывается последним в строчке?
Rodion Уровень 20
4 мая 2021
сюда стоит вернуться этак после уровня 9, чтобы все еще раз повторить, а то в начале эта информация совсем не воспринимается. Собственно этим я и занимаюсь находясь на 13 уровне.
Кот Уровень 23
28 апреля 2021
Всем привет. То есть я пишу код из двух классов Cat и MyCat. Далее я сохраняю их в папке Forest с java.io. Через два дня я пишу другой код с новыми классами Dog и MyDog. Получается для того, что бы не переписывать Cat и MyCat в новый код(Dog и MyDog), я могу просто импортировать их??
15 марта 2021
Пакет — это папка на компе в которой лежит файл c расширением .java ?
Сообщество
JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
«Программистами не рождаются» © 2024 JavaRush
Скачивайте наши приложения
«Программистами не рождаются» © 2024 JavaRush
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.
Получение имени текущего класса в 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 — это не просто строки. Они играют важную роль в идентификации классов во время выполнения программы. Поэтому любые «ненужные» символы, включая $ и номер после него, на самом деле выполняют важную функцию и не являются бессмысленными.