因为我厌倦了为每个返回原始View的Activity.findViewById()编写一个强制转换操作符,所以我终于尝试了one way that was suggested by Internet.
public abstract class MyActivity extends Activity {
@SuppressWarnings("unchecked")
protected <T extends View> T findViewByID(int id) {
return (T) this.findViewById(id);
}
}
请注意,这不会过载(最后一个“D”是大写的).编译器说我们不能将View转换为T.我的实现有什么问题吗?奇怪的是,这个建议很难在英文网站上看到(例如,甚至在我们可爱的Stack Overflow中),例外是上面发布的网站.
解决方法:
这在我的测试项目中工作正常.没有编译器错误: