Перейти к содержимому

Как получить имя класса java

  • автор:

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 — это не просто строки. Они играют важную роль в идентификации классов во время выполнения программы. Поэтому любые «ненужные» символы, включая $ и номер после него, на самом деле выполняют важную функцию и не являются бессмысленными.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *