它与括号的放置无关.
这个问题与泛型有关:
例如.编译失败:
Loader loader = getLoaderManager().getLoader(0);
PatientLoader ch = (PatientLoader)loader; // Will show compile error (Cannot cast from Loader to PatienLoader)
但这将编译好:
Loader> loader = getLoaderManager().getLoader(0);
PatientLoader ch = (PatientLoader)loader; // Compiles fine.
区别在于< Object>泛型与通用声明.
问题是getLoader(int)被定义为返回Loader< D>.这意味着下面的语句中的’getLoaderManager().getLoader()’被解释为Loader< Object>而不是装载机.
PatientLoader ch = (PatientLoader)getLoaderManager().getLoader(0); // Compile error.
我认为这是SDK中的“错误”.应该定义方法getLoader(int)以返回Loader而不是装载机< D>.