instanceof und Casts
This commit is contained in:
84
src/org/eidecker/oca8lernen/general/InstanceOfUndCast.java
Normal file
84
src/org/eidecker/oca8lernen/general/InstanceOfUndCast.java
Normal file
@@ -0,0 +1,84 @@
|
||||
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 {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user