日志消息中的美元符号($)的含义

时间:2014-09-18 18:20:39

标签: java android eclipse debugging syntax

    java.util.ConcurrentModificationException: null
    java.util.HashMap$HashIterator(HashMap.java:806)

    com.cimba.gsr.fragments.SessionsFragment(SessionsFragment.java:233)

    com.cimba.gsr.fragments.SessionsFragment$4(SessionsFragment.java:201)

有时在类名后的日志输出中,邮件中有一个Dollor符号($)是什么意思?我认为它是导致异常的类中的方法名称或变量名称,但在这种情况下它没有意义(SessionsFragment $ 4它不能是方法或变量的名称)。 那是什么?

1 个答案:

答案 0 :(得分:3)

$是一个分隔符,表示HashIterator类中有一个嵌套类HashMap,并且有一个匿名内部类(第四个,它看起来像)SessionsFragment类内部。

This site explains $分隔符。

Filename: StackTrace.java

Line number: 267
Package name: boo.hoo
Full class name: boo.hoo.StackTrace$FirstNested$SecondNested
Simple class name: StackTrace$FirstNested$SecondNested
Unmunged class name: StackTrace.FirstNested.SecondNested
Direct class name: SecondNested
Method name: <init>
Native method?: false
toString():
boo.hoo.StackTrace$FirstNested$SecondNested.<init>(StackTrace.java:267)
     

通过使用美元符号字符($),嵌套类与更高级别的嵌套类和顶级类不同。所以,从技术上讲,&#34;简单&#34;第二个嵌套类的名称是StackTrace $ FirstNested $ SecondNested。