- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的 C++ 扎实,有些 Java 概念并不是 100% 清楚。
List<SomeInterface> list = new ArrayList<SomeImplementation>;
这是 100% 清楚的,无需解释 - 但它会产生后果......
interface Drivable {...}
class Car implements Drivable {...}
class Bike implements Drivable {...}
class Skateboard implements Drivable {...}
class MyGarage{
List<Driveable> myRides;
public void addRides( List<Driveable> rideList ){...}
不能用 List<Car>
调用.但是我可以通过以下方式将 Cars 添加到 myRides:
public void addCars( List<Car> carList ){
myRides.addAll( new List<Driveable>( carList ) );
Q1:这是个好主意吗?
我真的希望像第一个函数那样起作用。通过做一些对应于 C++ const&
的事情并将传入的 carList 的副本添加到 myRides 我认为 carList 将受到保护,免受非法访问。我希望添加 final
作为函数参数被压碎了。
问题 2:有什么方法可以使 addRides(List<Driveable> rideList)
完全可调用?工作?
重载 ( List<Car> List<Bike> etc
) 也不合法。
是的,我可以通过添加单独的函数来完成这项工作 addBikes() addCars etc
或者我可以做 new List<Drivable>
在每个调用点。但我希望有更时尚的东西。
Q3:有什么建议吗?
非常感谢!亚当
最佳答案
您的addRides 方法应该是这样的:
public void addRides(Collection<? extends Drivable> c)
如果对泛型的使用有疑问,可以在java.util中寻找集合接口(interface),他们有很多例子,你想做的和 Collection.addAll()是一样的。 确实如此。
关于java - YAJGCQ 另一个 Java 泛型与集合 Q,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9315766/
我的 C++ 扎实,有些 Java 概念并不是 100% 清楚。 List list = new ArrayList; 这是 100% 清楚的,无需解释 - 但它会产生后果...... interfa
我是一名优秀的程序员,十分优秀!