85 lines
1.5 KiB
Java
85 lines
1.5 KiB
Java
package org.eidecker.oca8lernen.general;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
import java.lang.reflect.Array;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
public class InstanceOfUndCast {
|
|
|
|
@Test
|
|
public void testInstanceof() {
|
|
// Instanceof außerhalb Typhierarchie nicht möglich
|
|
// boolean b = "Hallo" instanceof InstanceOfUndCast;
|
|
|
|
assertEquals(false, null instanceof InstanceOfUndCast);
|
|
|
|
String s;
|
|
// Nicht möglich, da nicht initialisiert
|
|
// s instanceof String;
|
|
|
|
int[] array = {1, 3, 4};
|
|
assertEquals(true, array instanceof Object);
|
|
|
|
|
|
// Nicht möglich, null kein Typ
|
|
// "Hallo" instanceof null
|
|
}
|
|
|
|
@Test
|
|
public void testPrimitiveCast() {
|
|
byte a = 4;
|
|
a = (byte) (a + 3); // Expliziter Cast erforderlich
|
|
|
|
byte b = 2;
|
|
b += 3;
|
|
}
|
|
|
|
@Test
|
|
public void testCast() {
|
|
OberCast echterOber = new OberCast();
|
|
OberCast oberAberUnter = new UnterCast();
|
|
|
|
UnterCast echterUnterCast = new UnterCast();
|
|
|
|
|
|
String s = (String) null;
|
|
|
|
echterOber = (UnterCast) echterUnterCast;
|
|
|
|
echterOber = oberAberUnter;
|
|
|
|
echterUnterCast = (UnterCast) oberAberUnter;
|
|
|
|
assertThrows(ClassCastException.class, () -> {
|
|
UnterCast echterUnterCast2 = new UnterCast();
|
|
OberCast echterOber2 = new OberCast();
|
|
echterUnterCast2 = (UnterCast) echterOber2;
|
|
});
|
|
|
|
{int i, j;}
|
|
|
|
for (int i = 1; i< 3; i++) {
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
class OberCast {
|
|
|
|
}
|
|
|
|
class UnterCast extends OberCast {
|
|
void untercast() {
|
|
System.out.printf("untercast");
|
|
}
|
|
}
|
|
|
|
class AußerhalbCast {
|
|
|
|
}
|
|
|
|
}
|