Что означает доллар, за которым следует индекс в имени класса?

Я профилирую приложение java, и наибольшее количество выделенных объектов имеет имя com.x.y.ClassName.

профилировщик netbeans и yourkit используют одно и то же соглашение об именах. Я в недоумении, как google проблема именования.

что это после имени класса?

изменить: Кажется, $5-это пятый анонимный класс объявляется. Я использовал javap на сгенерированном классе, чтобы найти, который является пятым анонимным классом. Ссылка найдена в как сопоставить скомпилированное имя класса с членом перечисления в Java?

2 ответов


com.X. y.ClassName$5 означает " пятый анонимный внутренний класс в com.х.г.Имя_класса"


некоторые ссылки, чтобы помочь вам. Также посмотрите на polygenelubricant это ответ

вы получаете com.X. y.ClassName$5. когда ваш класс содержит anonyomous внутренний класс

    sample8.class
    sample8.class
    sample8.class
    sample8$klass.class
    sample8$klass.class

пример

   public class sample8 {


        private class klass{
            void vodka() {
                sample8 _s = new sample8() {

                };

            }
        }
        sample8() {
               klass _k = new klass();
              _k.vodka();
           }


    public static void main(String args[])
    {
    }

    sample8 _s = new sample8() {

    };

    sample8 _s1 = new sample8() {

    };
}