为什么用'$'代替'。'?
问题描述:
在我的AndroidManifest.xml中,我在下面的行代码中有一个警告。
<service android:name=".Helper.LocationService"/>
的警告是:
内部类应该使用$,而不是。当您在清单文件中引用内部 类时,您必须使用'$'而不是'。'。作为 分隔符,即Outer $ Inner而不是Outer.Inner。
所以,如果使用'。'代替'。',为什么要使用''''。仍然有效?
答
建议使用$
以免混淆外部类名称与包名称。所以$
当你想参考包时参考InnerClass
和.
。
例如,如果Helper
那么一个包的名称(小写建议用于包名):
<service android:name=".helper.LocationService"/>
其中如果Helper
是一个类和LocationService
是内部Helper
<service android:name=".Helper$LocationService"/>
+0
我明白了! “助手”是一个包,所以我重构了它,警告消失了。谢谢! –
限定的内类https://stackoverflow.com/a/32985736/3364266检查此 –
此外$是Java加载器的传统内部类解析器。但它看起来像这里它是可选的 –
[java编译类包含美元符号]的可能重复(https://stackoverflow.com/questions/11388840/java-compiled-classes-contain-dollar-signs) – dasblinkenlight