cast über string

Status
Nicht offen für weitere Antworten.

noisebreath

Bekanntes Mitglied
hi

kann ich irgendwie über nen string casten?
Pseudocode:
Code:
		Object zuCasten = new Integer(2);
		String CastTyp = new String("Integer");
		CastTyp b = (CastTyp)f;

vielleicht irgendwie in verbindung mit generic class/function?
Code:
public static  T unsecureCast(Object o) {
		return (T) o;
}
               //main
		String className = "Integer";
		Class a;
		a = Class.forName(className);
		Object anObj = a.newInstance();
		tes<className> b = new tes();

ehrlich keine ahnung ob das überhaupt möglich ist.
hat da jemand ne idee?

lg
noise
 

gizmo

Bekanntes Mitglied
Nein, dies ist nicht möglich. Ich habe dies noch nie gebraucht und programmiere schon eine Weile Java. Was willst du genau machen und wieso benötigst du diese Möglichkeit zu casten.

Wenn du zur Laufzeit den Typ nicht kennst, kannst du auch keine Methoden ausser von Object aufrufen. Der Cast bringt dir also nichts.

Du kannst höchstens mit Reflection arbeiten, verlierst dabei aber die Typsicherheit.
 
B

bygones

Gast
du musst immer den kompletten Namen angeben
Java:
Class<?> c = Class.forName("java.lang.Integer");
Integer i = (Integer)c.newInstance();
wobei das hier nicht klappt da Integer keinen Standardkonstruktor hat...
 

FatFire

Bekanntes Mitglied
Nein, dies ist nicht möglich.
Möööp...
Ich habe dies noch nie gebraucht und programmiere schon eine Weile Java.
Schade, kann mitunter ganz nützlich sein und wenn man per instanceof vorher nachprüft, auch nicht so unsicher.

Den Rest spar ich mir mal, bygones war schneller.

Gruß FatFire

Edit: Der Kommentar war eben aber noch nicht da, oder?
Wenn du zur Laufzeit den Typ nicht kennst, kannst du auch keine Methoden ausser von Object aufrufen.
Deswegen kann man ja auch zur Laufzeit den Typ bestimmen und casten. Selbst wenn Du die Klasse vorher noch nie gesehen hast, könntest Du Dir eine Auflistung der Methoden geben und welche davon ausführen...während der Laufzeit!
 
Zuletzt bearbeitet:

gizmo

Bekanntes Mitglied
Vielleicht habe ich die Frage falsch verstanden, aber der Beispielcode lässt sich wirklich nicht so in Java realisieren.
("EinString")einObjekt
Ist nicht möglich...

Edit: Doch, der war da...
 

gizmo

Bekanntes Mitglied
Kannst du im grösseren Zusammenhang erklären was du machen willst? Es gibt bestimmt eine Lösung.

Oder sieh dir das Kapitel über Reflection in der Insel an, danach weisst du was möglich ist (es geht einiges).
 
B

bygones

Gast
ja und wie soll das gehen? ich muss doch auch bei generics den Typ übergeben (???)
wie du anhand der Diskussion vll mitbekommen hast ist man sich nicht sicher zu wissen was du eigentlich nun machen willst....

du kannst ueber den klassenenamen dir Objekte eines Types erstellen, ein simples [c]MyObject o = ("MyObject")anyObject;[/c] geht nicht...
 

Landei

Top Contributor
Meinst du sowas?
Java:
public static <T> T bla(Class<T> clazz, Object o) { 
  return clazz.cast(obj);
}
 

gizmo

Bekanntes Mitglied
Wenn du nur die Klasse wissen willst, z.B. von Objekten, welche in einem Array sind, ist dies einfach und geht ohne Strings.

Class<?> c = objArr[0].getClass()

Du solltest noch auf null prüfen.
 

noisebreath

Bekanntes Mitglied
naja das ist mir klar, das war ja auch nur pseudo so ausgedrückt.

ich erläutere das ganze mal.

hypothetisches nicht unbedingt sinnvolles szenario: ^^

ich lese aus einem file und will einfach hintereinander die in dem File eingetragenen classen instantiieren.

inhalt file sieht pseudo z.B. so aus:
java.lang.Integer
java.fantasy.Fantasy
java.lang.String

meine Reflectionfunktion gibt mir nun instantiierte Objects zurück. Ich will nun aber nicht mit 1000 abfragen abfangen:
Code:
if instanceof String
String b = (String)getreflection(className);
if instanceof Integer
Integer b = (Integer )getreflection(className);
if instanceof Fantasy
Fantasy b= (Fantasy)getreflection(className);

Ich weiss ja nicht was für classes in meinem file drinstehen also kann ich unmöglich alle classes mit instanceof abfragen abdecken. Wollte wissen ob ich das IRGENDWIE umgehen kann...
 

gizmo

Bekanntes Mitglied
Das ist so nicht möglich. Ist aber auch nur notwendig, wenn du andere Methoden als die Methoden von Object aufrufen willst. Dies könntest du mit Reflection machen.

Reflection ermöglicht es dir, wenn du ein Objekt hast und den Methodennamen (als String), die Methode aufzurufen.

Wenn du die Objekte anzeigen willst, z.B. in einer JTable, kannst du auf das toString von Object zurückgreifen oder besser auf den Operator '+'. Wenn du die Objekte speziell formatieren willst, kannst du (bei eigenen Klassen) toString überschreiben oder einen Renderer schreiben.

Was willst du mit den erzeugten Objekten machen?

Edit: Typos
 
Zuletzt bearbeitet:

noisebreath

Bekanntes Mitglied
funktionen der klassen ausführen. die stehen auch in dem file drin. ich weiss also z.b. das die Class Fantasy eine Funktion besitzt "kreiereFantasy();". aber die kann ich ja auf dem Object nicht aufrufen. das hat ja nur so funktionen wie getClass(),equals(),notify() etc. .. schade dass das nicht geht..
Danke dennoch für die vielen Teilnahmen an der Diskussion.

lg
noise
 

FatFire

Bekanntes Mitglied
Einen gewissen Erwartungswert muss man natürlich schon haben, wenn man da irgendwas einliest. Einfach Klassen einlesen ohne zu wissen, was man eigentlich sucht und Methoden ausführen, ohne zu wissen, was diese eigentlich tun, macht in meinen Augen irgendwie keinen Sinn (kann zwar in Verbindung mit Random ganz lustig sein, aber Sinn?).
Schön ist sowas zum Beispiel, wenn Du eine eigene IDE schreibst...Klassen die Du nicht kennst und kannst trotzdem reinschnuppern und Dir die Methoden anschauen...ziemlich praktisch. Oder bei eigenen Programmen und fest abgemachten Interfaces ein Plugin-System aufbauen. Macht alles Sinn.

Komm doch mit einem etwas konkreteren Problem, dann können wir Dir sagen, was Sinn macht und wie man es umsetzen kann.

Gruß FatFire
 
M

maki

Gast
Einfach Klassen einlesen ohne zu wissen, was man eigentlich sucht und Methoden ausführen, ohne zu wissen, was diese eigentlich tun, macht in meinen Augen irgendwie keinen Sinn (kann zwar in Verbindung mit Random ganz lustig sein, aber Sinn?).
Man stelle sich die unglaubliche sinnvolle & praktische Methode [c]public void createRandomError()[/c] vor, schon hat man einen realistischen Einsatzbereich, der mIllionen Java Entwicklern das schreiben von fehlerhaftem Code erspart...
 

gizmo

Bekanntes Mitglied
Errors are not free, someone writes them and even gets paid for it ;)

(Hoffentlich hat das jetzt nicht zuviele Schreibfehler)

Es gibt natürlich Situationen, wo es sinnvoll ist, Klassen zu laden und Funktionen aufzurufen, welche in einem File definiert sind. Sieh dir an, wie Ant aufgebaut ist.
 

FatFire

Bekanntes Mitglied
Es gibt natürlich Situationen, wo es sinnvoll ist, Klassen zu laden und Funktionen aufzurufen, welche in einem File definiert sind. Sieh dir an, wie Ant aufgebaut ist.
Das hab ich ja auch gar nicht behauptet, dass die Funktionalität keinen Sinn macht, aber das Ant-Vorbild würde in anderen Einsatzbereichen von Generics und Reflection eventuell total aufgeblasen wirken.

Gruß FatFire
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zeppi Cast Object in Generics Allgemeine Java-Themen 4
Tarrew RMI Java RMI - com.sun.proxy.$Proxy1 cannot be cast to Funktionen Allgemeine Java-Themen 0
G Klassen Cast auf Argumentenklasse via Reflection? Allgemeine Java-Themen 10
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
M Harten Cast vermeiden Allgemeine Java-Themen 7
S Unchecked cast from Component to JComboBox<String> Allgemeine Java-Themen 3
P Reflection "Cast" Allgemeine Java-Themen 5
M cannot be cast to java.lang.Comparable Allgemeine Java-Themen 5
V Gibt es einen Variablen Cast? Allgemeine Java-Themen 8
Z Cast von Long zu Integer funktionert nicht Allgemeine Java-Themen 3
C int zu byte cast - verständnis Allgemeine Java-Themen 3
E Heap und Comparable (warning: [unchecked] unchecked cast) Allgemeine Java-Themen 2
MQue cast DefaultMutableTreeNode Allgemeine Java-Themen 2
M Type-Cast Allgemeine Java-Themen 3
G Cast Allgemeine Java-Themen 4
O unchecked cast? Allgemeine Java-Themen 4
S instanceof liefert true, aber cast funktioniert nicht! Allgemeine Java-Themen 6
reibi Unchecked cast Allgemeine Java-Themen 1
T cast Object to Double[] Allgemeine Java-Themen 2
G Trotz Generics Cast-Fehler! Allgemeine Java-Themen 5
G Object cast via Reflection Allgemeine Java-Themen 8
R cast Integer[] zu int[] Allgemeine Java-Themen 2
G Cast von String zu Enumeration Allgemeine Java-Themen 2
N Warning "The Cast from Object to" Allgemeine Java-Themen 9
D Cast schlägt fehl : Object[] zu Button[] Allgemeine Java-Themen 2
Y unnecessary cast & Performance Allgemeine Java-Themen 29
B unchecked cast Error Allgemeine Java-Themen 2
K Cast ohne neues Object zu erzeugen Allgemeine Java-Themen 12
D Cast Exeption Allgemeine Java-Themen 4
T JNI: jcharArray: warning: cast to pointer from integer of. Allgemeine Java-Themen 5
K Cast von Properties und Hashmap Allgemeine Java-Themen 9
E NumberFormatException bei cast auf double Allgemeine Java-Themen 5
H [unchecked] unchecked cast Problem Allgemeine Java-Themen 5
kodela Datenübergabe über Buttons Allgemeine Java-Themen 8
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
A ByteArray über Socket Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
I OpenPDF erzeugt riesige PDFs, wenn Grafiken über PdfGraphics2D#drawImage gezeichnet werden Allgemeine Java-Themen 1
T Etikettendrucker über TCP-IP Allgemeine Java-Themen 1
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
L Aufwandsabschätzung: Android-App Aufnahmefunktion (foto) und zweiter Ebene über dem Foto (teiltransparent) Allgemeine Java-Themen 6
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
M Keine weitere Eingabe in der Main möglich. Eventueller Ansatz über while. Allgemeine Java-Themen 8
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Threads über Kommandozeile Allgemeine Java-Themen 5
david19 Software AE über Domain laufen lassen Allgemeine Java-Themen 0
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
K Auf Dateiverzeichnis extern zugreifen (evtl über XML??) Allgemeine Java-Themen 22
C VisualVM oder Jconsole über Jolokia-Proxy Allgemeine Java-Themen 0
G USB-Pins über Java ansteuern Allgemeine Java-Themen 8
Ernesto95 Best Practice Localization über ResourceBundle Allgemeine Java-Themen 6
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
F Try/catch über ganze Klasse Allgemeine Java-Themen 9
kodela Eigenartige Datumsberechnung über GregorianCalendar Allgemeine Java-Themen 15
HarleyDavidson Best Practice Integer-Zahlenfolge über mehrere Programmstarts Allgemeine Java-Themen 7
T .jar über cmd ausführen (später dann batch) Allgemeine Java-Themen 6
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
L Videodateien über Java öffnen unabhängig vom Format Allgemeine Java-Themen 4
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
M Eingabe von Arrays geht über gewünschte Anzahl hinaus Allgemeine Java-Themen 2
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
F Content-Disposition ermitteln über URL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
S VLC + Lied über Java starten Allgemeine Java-Themen 17
M HTML-Code von Webseite über Browser oder Console auslesen?? Allgemeine Java-Themen 5
A Sinuston ausgeben und über Mikro Amplitude messen – machbar? Allgemeine Java-Themen 6
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
C Daten über URL an PHP verschicken Allgemeine Java-Themen 4
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
S NoSuchMethodError beim Ausführen einer C Methode über JNI Allgemeine Java-Themen 5
H OOP Daten über TCP Allgemeine Java-Themen 5
Pastafari Iterator über nested HashMaps Allgemeine Java-Themen 7
R ListIterator über mehrere Arrays Allgemeine Java-Themen 13
G Interface Laden der Konfiguration über Interfaces sinnvoll? Allgemeine Java-Themen 28
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben