我正在尝试在java中创建一个通用数组 - 我遇到了一些问题 - 如何创建一个大小为6且内部大小为byte []和整数的元组数组?
由于
private Tuple<byte[], Integer>[] alternativeImages1 = new Tuple<byte[], Integer>[6];
class Tuple<F, S> {
public final F first;
public final S second;
public Tuple(final F first, final S second) {
this.first = first;
this.second = second;
}
@Override
public boolean equals(final Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
final Tuple tuple = (Tuple) o;
return this.first == tuple.first && this.second == tuple.second;
}
@Override
public int hashCode() {
int result = this.first != null ? first.hashCode() : 0;
result = 31 * result + (this.second != null ? second.hashCode() : 0);
return result;
}
}
答案 0 :(得分:7)
你可以使用原始类型:
Tuple[] array = new Tuple[6];
或者您可以进行未经检查的转换:
Tuple<byte[], Integer>[] array = (Tuple<byte[], Integer>[])new Tuple[6];
// or just this because raw types let you do it
Tuple<byte[], Integer>[] array = new Tuple[6];
或者你可以改用List:
List<Tuple<byte[], Integer>> list = new ArrayList<Tuple<byte[], Integer>>();
我建议改用List。
在前两个选项之间进行选择,我建议不经检查的转换,因为它将为您提供编译时检查。但是,如果你在其中添加了一些其他类型的元组,它将不会抛出ArrayStoreException。