Cap*_*aps 7 java types casting list
有没有办法将具体类型列表转换为Java中的接口列表?
例如:
public class Square implements Shape { ... }
public SquareRepository implements Repository {
private List<Square> squares;
@Override
public List<Shape> getShapes() {
return squares; // how can I return this list of shapes properly cast?
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢,
帽子
dle*_*lev 11
您可以使用通用通配符来允许派生列表用作基本列表:
public List<? extends Shape> getShapes() { ... }
Run Code Online (Sandbox Code Playgroud)
请注意,返回的列表不能添加非空项.(正如绍尔先生指出的那样,你可以添加null和删除也很好.)这是权衡,但希望在你的情况下无关紧要.
由于getShapes()是覆盖,您还需要更新返回类型Repository.
如果你真的想这样做,下面的东西可能会起作用
@Override
public List<Shape> getShapes() {
return new ArrayList<Shape>(squares);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3952 次 |
| 最近记录: |