Gemeinsames Lernen
This commit is contained in:
46
src/org/eidecker/oca8lernen/general/CastExceptions.java
Normal file
46
src/org/eidecker/oca8lernen/general/CastExceptions.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package org.eidecker.oca8lernen.general;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* @author seidecke.
|
||||
*/
|
||||
public class CastExceptions {
|
||||
|
||||
@Test
|
||||
public void testCastExceptions() {
|
||||
|
||||
OberCast eigentlichUnter = new UnterCast();
|
||||
OberCast wirklichOber = new OberCast();
|
||||
UnterCast purUnter = new UnterCast();
|
||||
|
||||
Außerhalb außerhalb = new Außerhalb();
|
||||
|
||||
OberCast ober = purUnter;
|
||||
|
||||
UnterCast unter = (UnterCast) eigentlichUnter;
|
||||
|
||||
// Runtime-Exception, da innerhalb der Typenhierarchie
|
||||
assertThrows(ClassCastException.class, () -> {
|
||||
UnterCast unter3 = (UnterCast) wirklichOber;
|
||||
});
|
||||
|
||||
// Compilefehler, da Versuch des Casts außerhalb der Typenhierarchie
|
||||
// UnterCast unter2 = (UnterCast) außerhalb;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class OberCast {
|
||||
|
||||
}
|
||||
|
||||
class UnterCast extends OberCast {
|
||||
|
||||
}
|
||||
|
||||
class Außerhalb {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user