Str*_*ist 8 java generics collections downcast
我一直在寻找答案,但无济于事.我的问题是为什么不可能用泛型来贬低.我有一个名为Job的类,并扩展了一个名为Model的类
Job extends Model
Run Code Online (Sandbox Code Playgroud)
现在,我从一个可重用的代码中获取了一组Jobs,这些代码生成了一个Models列表
// error: Cannot cast from List<Model> to List<Job>
List<Job> jobs = (List<Job>) jobMapper.fetchAll();
Run Code Online (Sandbox Code Playgroud)
其中jobMapper.fetchAll()返回一个List,其中的每个模型都是一个Job对象.
我认为这样可行,因为我能做到:
EditText mUsername = (EditText) findViewById(R.id.editUserName);
Run Code Online (Sandbox Code Playgroud)
这是一个简单的向下转换.
Leo*_*dos 12
你不能这样做,因为Java不允许这样做.读这个.你应该这样做:
List<Job> jobs = (List<Job>) ((List<?>)jobMapper.fetchAll());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6293 次 |
| 最近记录: |