Files
oca8-lernen/src/org/eidecker/oca8lernen/general/InstanceOfUndCast.java
Sebastian Eidecker 6e2c77ab31 instanceof und Casts
2019-11-14 21:39:21 +01:00

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 {
}
}