美元后跟一个指数在一个类名中意味着什么?

时间:2011-12-20 12:40:20

标签: java naming-conventions

我正在分析一个java应用程序,并且分配的最大数量的对象具有名称 com.x.y.ClassName$5

netbeans探查器和yourkit都使用相同的命名约定。 我不知道如何谷歌命名问题。

班级名称之后的$5是什么?

编辑: 似乎$ 5是第五个匿名类声明。我在生成的类上使用javap来查找哪个是第五个匿名类。参考文献How to match compiled class name to an enum member in Java?

2 个答案:

答案 0 :(得分:19)

com.x.y.ClassName $ 5表示“com.x.y.ClassName中的第五个匿名内部类”

答案 1 :(得分:1)

有些links可以帮助您。 另请参阅polygenelubricant's回答

你得到 com.x.y.ClassName $ 5 。当你的班级包含 anonyomous inner class

    sample8.class
    sample8$1.class
    sample8$2.class
    sample8$klass.class
    sample8$klass$1.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() {

    };
}