这是我的代码:
public class Sequence<T> {
protected List<T> sequence = new ArrayList<T>();
public Matrix<OrderedPair<T, ?>> createCartesianProduct(Sequence<?> secondSequence) {
Matrix<OrderedPair<T, ?>> result = new Matrix<OrderedPair<T, ?>>();
for (int rowIndex = 0; rowIndex < sequence.size(); rowIndex++) {
Sequence<OrderedPair<T, ?>> row = new Sequence<OrderedPair<T, ?>>();
for (int columnIndex = 0; columnIndex < secondSequence.length(); columnIndex++) {
row.add(new OrderedPair(sequence.get(rowIndex), secondSequence.sequence.get(columnIndex)));
}
}
return result;
}
}
这在 Eclipse 中编译,但在内部 for 循环( row.add(...) )内的行上,我收到以下三个警告:
OrderedPair
是原始类型。对泛型类型的引用OrderedPair()<T1, T2>
应该被参数化。- 类型安全:OrderedPair 类型的表达式需要未经检查的转换才能符合
OrderedPair<T, ?>
- 类型安全:构造函数 OrderedPair(Object, Object) 属于原始类型 OrderedPair。对泛型 OrderedPair 的引用
<T1, T2>
应该被参数化
我想在这里使用泛型来强制执行强类型检查,但我想我对泛型的理解不足以让我看到如何。有人可以教育我吗?
谢谢,
——肯