我正在使用旧版本的java SDK编写一个java应用程序,它不支持Generics。那么,如何在编译期间确保类型安全。我可以使用instanceof()。但是,它确实确保了运行时类型的安全性。请提供您的建议。
答案 0 :(得分:3)
您需要使用抽象/接口(即通过使它们全部实现相同的接口来限制事物)或者您需要使用泛型。
还有很多其他选项,这正是添加了解决的泛型。
答案 1 :(得分:2)
在过去的糟糕时期,集合和地图通常被填充在一个类中,该类的方法暴露了正确的类型。因此,要创建一个" typesafe"整数列表,您可以执行以下操作:
class IntegerList {
private final List delegate = new ArrayList();
public boolean add(Integer i) {
return delegate.add(i);
}
public Integer get(int index) {
return (Integer) delegate.get(i);
}
public Iterator iterator() {
return delegate.iterator();
}
// etc
}
当然,您仍然坚持使用非类型安全Iterator
,但您可以使用其他类似的IntegerIterator
来实现这一目标。请注意,这基本上是泛型为您自动执行的操作。
为什么要使用这样陈旧的JDK?