Cast explizit verbieten

Status
Nicht offen für weitere Antworten.

Baufo

Mitglied
Ich kann ja eine Klasse, die von einer anderen Klasse abstammt, für gewöhnlich in die Mutteklasse casten, etwa:
Code:
class KindKlasse extends MutterKlasse
und dann
Code:
KindKlasse kk = new KindKlasse();
MutterKlasse mk = (MutterKlasse)kk;

Was ist aber, wenn ich will, dass das eine ClassCastException wirft? Kann ich irgendwie das Casten zwischen diesen Klassen verhindern?

Danke!
 

Wildcard

Top Contributor
Den cast kannst du auch weglassen dann ist der Code trotzdem korrekt.
Der einzig mögliche Grund für deine Frage scheint mir zu sein, dass du das System von OOP nicht verstehst.
 
S

SlaterB

Gast
nö, gewisse Grundlagen sind festgemeiselt,

aber du kann mit einem Texteditor "(MutterKlasse)" suchen und so die bösen Stellen erkennen,
bzw. dir ein entsprechendes Mini-Java-Tool schreiben
 

Baufo

Mitglied
Eigentlich wollte ich sowohl verschiedene Klassen in einen Vector werfen und wenn ich sie wieder heraus hole sie jeweils gesondert behandeln (wobei ich sie daran als bestimmtes Objekt einer Klasse erkenne, dass sie keine Exception werfen, wenn sie der Reihe nach in alle Klassen zu Casten versuche, was natürlich nicht funktioniert, wenn das Casten in eine "falsche" Klasse keine Exception wirft).

Danke trotzdem.
 

Wildcard

Top Contributor
Baufo hat gesagt.:
Eigentlich wollte ich sowohl verschiedene Klassen in einen Vector werfen und wenn ich sie wieder heraus hole sie jeweils gesondert behandeln
Da fängt der Fehler schon an. Objekte die keine gemeinsame Basis haben, aber dennoch in der gleichen Collection stehen sind ein sicheres Indiz für ein verkorkstes Design.
 

Baufo

Mitglied
Wildcard hat gesagt.:
Baufo hat gesagt.:
Eigentlich wollte ich sowohl verschiedene Klassen in einen Vector werfen und wenn ich sie wieder heraus hole sie jeweils gesondert behandeln
Da fängt der Fehler schon an. Objekte die keine gemeinsame Basis haben, aber dennoch in der gleichen Collection stehen sind ein sicheres Indiz für ein verkorkstes Design.

Es ist aber sehr wichtig, in welcher Reihenfolge diese verschiedenen Objekte stehen und sie alle in einen Vector zu geben erspart mir sowas wie einen Index für jedes Objekt.
 

Wildcard

Top Contributor
Und ohne deine Problemstellung zu kennen behaupte ich das es für dein Problem auch eine elegante Lösung gibt.
Bei solchen Fällen führt dieser Weg in aller Regel über Interfaces.
 

sparrow

Top Contributor
Eine Lösung im Sinne der OOP wäre zum Beispiel die Collection so zu definieren, dass sie nur Klassen vom Typ A aufnehmen kann.

A ist eine Klasse die 2 Objekte hat: 1. Eine Klasse die das eigentliche Objekt enhält und 2. einen Flag über den festzustellen ist welche Art von Klasse isch in dem Klassenobjekt befindet.


Gruß
Sparrow
 

SnooP

Top Contributor
Im Sinne von OOD/OOP wäre es, wenn es völlig egal ist, welche Typen sich in de Collection befinden, solange sie ein gemeinsames Interface nutzen und deren Methoden im Sinne von Polymorphie grundsätzlich unterschiedliche Implementierungen ausführen...

alles andere wäre nu wieder gar nicht OOP - dann bräucht ich nämlich Typen etc. nicht, sondern könnte mit einfachen Modulen hantieren und halt Flags, die mir sagen, ist das jetzt Modul A, dann mache das, bei B mache was anderes... - auch instanceof-Nutzung ist sehr unschön... - also wenn man sowas braucht: Design überlegen...

manchmal allerdings klappts halt auch mal nich ;) - nicht alle Probleme lassen sich immer so super schön OO-like klären...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
O Cast Java Basics - Anfänger-Themen 16
R Cast java.awt.Graphics Java Basics - Anfänger-Themen 7
N Simpler cast? Java Basics - Anfänger-Themen 9
D Java Eclipse cannot be cast to java.awt.event.ItemListener Java Basics - Anfänger-Themen 3
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
A Ohne Cast auf Methode zugreifen? Java Basics - Anfänger-Themen 4
J Datentypen Cast von int zu char führ zu 'Sonderzeichen' Java Basics - Anfänger-Themen 2
K Cast bei equals Java Basics - Anfänger-Themen 2
N Vererbung Verschiedene Subclasses nach cast zur Superclass unterscheiden Java Basics - Anfänger-Themen 9
N Cast eines Objektes in eine Hashmap Java Basics - Anfänger-Themen 13
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
R Variablen Möglich?: Cast einer Referenzvariable auf den Typ seines Objektes Java Basics - Anfänger-Themen 19
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
M ListIterator + Cast Java Basics - Anfänger-Themen 12
D Wie "unchecked cast" hier vermeiden? Java Basics - Anfänger-Themen 2
M Cast nach int Java Basics - Anfänger-Themen 8
M object cast auf double Java Basics - Anfänger-Themen 2
I double (cast) rundungsproblem Java Basics - Anfänger-Themen 8
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
L Type/Cast Problem Java Basics - Anfänger-Themen 6
E Klassen ClassCastException bei gleichnamigem: paket.klasse cannot be cast to paket.klasse Java Basics - Anfänger-Themen 10
T Datentypen byte -Division..mal gehts mit cast mal ohne Java Basics - Anfänger-Themen 5
M Collections Cast bei ArrayList (List) Java Basics - Anfänger-Themen 2
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
C Generics und Cast Java Basics - Anfänger-Themen 5
M Polymorphie Cast:Verständnis und Ausführung Java Basics - Anfänger-Themen 10
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
A Cast ohne Warnung bei Generics Java Basics - Anfänger-Themen 2
J cast zu int immer 0.. Java Basics - Anfänger-Themen 6
I java.lang.String cannot be cast to OBJEKT Java Basics - Anfänger-Themen 8
A Object -> String mit valueOf, toString oder cast ? Java Basics - Anfänger-Themen 6
M Cast vermeiden Java Basics - Anfänger-Themen 11
M Generics - "Unchecked cast"-Warnung wegbekommen Java Basics - Anfänger-Themen 4
B Exception cast to CORBA.Object Java Basics - Anfänger-Themen 2
K Cast-Operator Java Basics - Anfänger-Themen 3
Guybrush Threepwood Inhalt eines Strings für cast verwenden Java Basics - Anfänger-Themen 6
A Seltsame Class Cast Exception Java Basics - Anfänger-Themen 3
V Cast-Operator Java Basics - Anfänger-Themen 2
kulturfenster Cast Probleme Java Basics - Anfänger-Themen 2
V Frage zu final und Class bzw. Class.cast Java Basics - Anfänger-Themen 5
F paket.Klasse cannot be cast to paket.Klasse Java Basics - Anfänger-Themen 6
J Cast-Problem Java Basics - Anfänger-Themen 7
D Class Cast Exception Java Basics - Anfänger-Themen 5
R variabler cast Java Basics - Anfänger-Themen 5
G cast von Char nach int Java Basics - Anfänger-Themen 3
zilti Cast Exception bei JTable Java Basics - Anfänger-Themen 15
S "Unchecked Cast" Warnung Java Basics - Anfänger-Themen 3
G cast von int To Integer? Java Basics - Anfänger-Themen 3
M Double -> Int Cast funktioniert nicht. Java Basics - Anfänger-Themen 5
vogella Cast from Collection.toArray to String[] Java Basics - Anfänger-Themen 2
E Cast von Object zu int (Array) Java Basics - Anfänger-Themen 19
W Java Cast bei Vectoren Java Basics - Anfänger-Themen 10
A Cast Generics Java Basics - Anfänger-Themen 6
M Class Cast Exception Java Basics - Anfänger-Themen 7
J Cast zwischen zwei Unterklassen der selben Oberklasse. Java Basics - Anfänger-Themen 7
B Byte übergeben ohne cast? Java Basics - Anfänger-Themen 12
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D explizit NullPointerException werfen Java Basics - Anfänger-Themen 28
E Klassen Direkte Referenzierung einer Klasse verbieten? Java Basics - Anfänger-Themen 6
M Vererbte Methoden "verbieten"? Java Basics - Anfänger-Themen 11
T JOption Pane: Sonderzeichen verbieten? Java Basics - Anfänger-Themen 14
F Leerstring verbieten Java Basics - Anfänger-Themen 4
G JTable das ewige neuzeichnen verbieten? Java Basics - Anfänger-Themen 7
I instanziieren einer Klasse verbieten Java Basics - Anfänger-Themen 19
I Kommastellen in Zahlen verbieten Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben