Files
oca8-lernen/src/org/eidecker/oca8lernen/general/CastExceptions.java
2019-11-16 16:44:25 +01:00

72 lines
1.3 KiB
Java

package org.eidecker.oca8lernen.general;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.nio.file.AccessDeniedException;
import java.util.List;
import java.util.zip.DataFormatException;
/**
* @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;
try {
UnterCast unterCast = new UnterCast();
unter.method();
} catch (RuntimeException e) {
}
}
}
class OberCast {
public void method() throws IOException{
}
}
class UnterCast extends OberCast {
@Override
public void method() {
System.out.println("method in Untercast");
}
}
class Außerhalb {
}
class MyCheckedException extends Exception {
}