import java.lang.reflect.Array;
public
class ArrayGetLongApp
{
public static void
main(String[] args)
{
long[] einArray={42,21,7,7};
long
long1 = einArray[1];
long long2 =
Array.getByte(einArray,1); // Diese Zeile bewirkt -->
// Exception in thread "main"
java.lang.IllegalArgumentException:
//
argument type mismatch
// at
java.lang.reflect.Array.getByte(Native Method)
// at ArrayGetLongApp.main(ArrayGetLongApp.java:10)
// long long2 = Array.getLong(einArray,1); // richtige Lösung
System.out.println("long1: " + long1);
System.out.println("long2: " + long2);
}
}
Das Programm ist syntaktisch korrekt und lässt
sich kompilieren. Bei der Ausführung wird allerdings eine
IllegalArgumentException geworfen. Grund dafür ist, dass
der getByte( )-Methode ein long-Array übergeben
wird. Das ist nicht zulässig. Stattdessen muss die getLong(
)-Methode verwendet werden:
long long2 = Array.getLong(einArray, 1);