Java 在类名中,美元后跟索引意味着什么?

Java 在类名中,美元后跟索引意味着什么?,java,naming-conventions,Java,Naming Conventions,我正在分析一个java应用程序,分配的对象中最大的一个是name com.x.y.ClassName$5 netbeans探查器和yourkit都使用相同的命名约定。 我不知道如何用谷歌搜索命名问题 课程名称后面的$5是什么 编辑: 5美元似乎是第五个匿名类。我在生成的类上使用了查找第五个匿名类。com.x.y.ClassName$5中的引用表示“com.x.y.ClassName中的第五个匿名内部类”一些帮助您的类。 再看看答案 您将获得com.x.y.ClassName$5。当您的类包含一个

我正在分析一个java应用程序,分配的对象中最大的一个是name
com.x.y.ClassName$5

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

课程名称后面的
$5
是什么

编辑: 5美元似乎是第五个匿名类。我在生成的类上使用了查找第五个匿名类。com.x.y.ClassName$5中的引用表示“com.x.y.ClassName中的第五个匿名内部类”

一些帮助您的类。 再看看答案

您将获得com.x.y.ClassName$5。当您的类包含一个异常的内部类时

    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() {

    };
}

哇,快回答。有没有办法知道哪一个内部类是第五类?我不知道有什么办法。所以我对自己的答案不满意。说“第五”而不说具体的顺序就像说“一个随机数”。然而,如果你有一个很好的反编译器,比如你可以向你展示任何内部类的代码,我认为这是它们声明的顺序。。。无论如何,您可以覆盖toString()以在调试器中提供一些有意义的表示。@fortran toString方法将如何更改类名?@bbaja42它根本不会更改类名,但在大多数IDE中,如果将鼠标悬停在活动对象上,它将显示其toString()表示(默认情况下是类名和一些散列)。这将导致ClassName$klass,而不是ClassName$Thank Mark you r right。如果存在异常内部类,它将创建一个。