我是Android新手。减慢编码速度的一件事是由以下语句生成的错误:
String logoPath = infoMap.get("LogoPath");
似乎需要对String进行显式强制转换才能被接受,例如
String logoPath = (String)infoMap.get("LogoPath");
是否可以关闭此显式演员表?我已经告诉编译器期望一个字符串......
答案 0 :(得分:3)
是否可以关闭此显式演员表?
仅当您可以将表达式infoMap.get("LogoPath")
更改为String
类型时。我们目前不知道infoMap
是什么,但如果您可以将其声明为Map<String, String>
,那么它应该正常工作。也许您目前正在使用原始Map
类型?
如果您无法更改infoMap.get(...)
以返回String
,则绝对需要演员。你基本上是对编译器说,“我知道你不能检查这个,但我确定这个方法返回的值是一个字符串引用(或null)。请在执行时检查。”它还可以警告任何人阅读代码,理论上(至少)有可能出错。
强制转换表示类型系统无法像您希望的那样有效工作的情况 - 您喜欢能够在编译时验证{{1 }}方法返回一个get
兼容的引用。看看你能做些什么来做到这一点 - 如果你做不到的话,你就会遇到演员。