Ich versuche, eine Instanz einer Klasse ZipIterator zu erstellen, die zwei beliebige Arrays als Argumente akzeptiert und sie über den Konstruktor den zwei privaten Feldern K [] und V [] gleichsetzt. In meiner Test-Klasse Haupt Methode main-Methode, ich istWie erstelle ich eine Instanz einer Klasse mit zwei generischen Typen?
import java.util.Iterator;
public class ZipIterator<K,V>
{
private K[] arr1;
private V[] arr2;
private int pos = 0;
public ZipIterator(K[] arr1, V[] arr2) {
this.arr1 = arr1;
this.arr2 = arr2;
}
}
In meiner Test-Klasse zu schreiben, versuche ich ein ZipIterator Objekt wie diese
int[] arr1 = {1,5,3,1,6};
double[] arr2 = {2.3,42.1,1.6,6.43};
ZipIterator<int[],double[]> zip = new ZipIterator<int[],double[]>(arr1,arr2);
zu schaffen, aber ich halte das immer Fehler:
error: incompatible types: int[] cannot be converted to int[][]
Ich bin nicht genau sicher, was ich falsch mache. Wenn jemand helfen kann, würde es sehr geschätzt werden!
Sie können keine primitiven Typen mit Generika verwenden. Verwenden Sie die Wrapper-Typen 'Integer' und' Double'. – 4castle
Sie haben 'K' auf' int [] 'gesetzt, und der Konstruktor erwartet ein' K [] ', was ein' int [] [] 'wäre. –