System.out.println(is.getClass().getName());

Status
Nicht offen für weitere Antworten.
G

gustel

Gast
Servus,

ich versuche eine kleinen Wrapper zur schreiben, der es mir ermöglichen soll unabhängig von der Reihenfolge wieder aus einen stream zu lesen.

will also nicht
Code:
         is.readInt();
         is.readObject();
         .....

verwenden.
Hatte mir gedacht das läuft mit

Code:
System.out.println(is.getClass().getName());

Aber is nicht, da ich ja nur die class von meinem outputStream bekomme, wie kann ich es anstellen das ich auf das erste Object gehe und mir deren class ausgeben lasse?

Wenn einer ne idee hätte wäre das echt super,



Danke
 
G

Guest

Gast
wenn ichs vorher doch serialisiert hab, handelt es sich doch um obj.? oder hab ich da was falsch verstanden?
 
G

Guest

Gast
Verwende keine primitiven Typen, sondern die Wrapperklassen wie java.lang.Integer, ...Long etc.,
dann kannst du einfach readObject() verwenden und anhand der Klasse unterscheiden, was es ist.
 
G

Guest

Gast
gut ok, das is schonmal was, danke.

aber es muss doch eine möglichkeit geben, ähnlich wie ein courser, auf das erste object im stream zu zeigen und dann mit getClass().getName() auf dieses zuzugreifen.....
nur weiß ich nicht wie...
 

Wildcard

Top Contributor
Hättest auch erwähnen können das is ein ObjectInputStream ist... :?
Lies das erste Object aus, dann kommst du auch an den Class-Name.
Was willst du damit eigentlich machen?
 
G

Guest

Gast
mahlzeit,

ja gut das erste objekt auslesen, aber zu dem zeipunkt hab ich mich doch bereits entschieden was ich auslesen will, like:

os.readInt();

Object i = is.readObject();
schmeißt ne fehlermeldung wenn ich ein Int vorfinden. Ich suche also nach ner möglichkeit einen Object auszulesen unabhängig vom Datentyp.

Auf diese Object will ich dann die getClass().getName() Methoden anwenden um zu ermitteln was es für eine Datentyp ist.

Haste eine idee???
 

wranger

Mitglied
Moin,

also nach meiner Auffasung ist das unmöglich. Woher soll der Interpreter denn wissen welches Objekt das nächste sein soll.

Beispiel: Es kommen 5, 5.5, 7.8

Das erste Element könnte ein short, long oder int sein
Das Zweite ein double oder float

???? Wie soll das denn gehen
 
G

Guest

Gast
mit der methode getClass().getName() kann man das schon machen. sind methoden von Object
und sebste nach einem cast weiß das Object von welcher class es ursprünglich war.

Es muss irgendwie ne möglichkeit geben ein Object aus dem stream zulesen und auf dieses dann diese methdeon anzuwenden.
Hatte mir mal gedacht das ich den gesamten objectstream in einen array einlesen, das klappt aber auch net so recht, das ich ja den array datentyp angeben muss.

So nen Käse. Hab in der api was gefunden, getField() bin mir aber net sicher, bzw. verstehen nicht was ein Field im zusammenhang mit objectstream seinen soll.
 

wranger

Mitglied
wranger hat gesagt.:
Beispiel: Es kommen 5, 5.5, 7.8

Das erste Element könnte ein short, long oder int sein
Das Zweite ein double oder float

???? Wie soll das denn gehen

Du hast mir auf die Frage nicht geantwortet!
Vielleicht ist es noch möglich alle in ein Objekt-Array zu bekommen. Aber wie willst du die ohne explizienten cast einem Typ zuweisen, da du diesen scheinbar nicht kennst ???:L
Auf diese Object will ich dann die getClass().getName() Methoden anwenden um zu ermitteln was es für eine Datentyp ist.

Tolle Idee, sagen wir in deinem Array aus Objekten steht 5,5.5, 7.8. Was sollte wohl passieren wenn du

Objektarray[2].getClass().getName();

machst? Was soll da denn vernünftiges bei rauskommen?

MfG
wranger
 

Wildcard

Top Contributor
Ist eigentlich sinnlos weiter in diesen Thread zu schreiben, denn früher oder später läuft das mit Sicherheit wieder auf einen dynamischen Cast raus, der aus offensichtlichen Gründen nicht möglich ist..
 
G

Guest

Gast
Also ich hatte mir das mal ungefähr so vorgestellt :

Code:
import java.io.*;

class tier implements Serializable
{
	String name;
	int alter; 
	int gewicht;
	
	tier(String n, int a, int g)
	{
		this.name = n;
		this.alter =alter;
		this.gewicht = g;	
	}
	
	String getName()
	{
		return name;
	}
	
	int getalter()
	{
		return alter;
	}
	
	int getgewicht()
	{
		return gewicht;
	}
}


class katze extends tier 
{
	int anzahlMaeuse;
	
	katze(String n, int a, int g, int aM)
	{
		super(n, a, g);
		this.anzahlMaeuse=aM;
	}
	
	int getanzahlM()
	{
		return anzahlMaeuse;
	}
}

class hund extends tier 
{
	hund(String n, int a, int g)
	{
		super(n, a, g);
		
	}
	
	
}
import java.io.*;

class start
{
	
	public static void main(String args[])
	{
		katze mia = new katze("gustel", 3, 15, 100);
		hund hund = new hund("Herr Schmitt", 4, 40);
		
		
		try 
    	{
    		FileOutputStream fo = new FileOutputStream("tier.ser");
		   	ObjectOutputStream os = new ObjectOutputStream(fo);
		    
		    os.writeObject(mia);
		    os.writeObject(hund);  
		    os.close();
		    
		    /*Array Anlegen*/

			tier[] array = new tier[3];
			
			
			FileInputStream fi = new FileInputStream("tier.ser");
		    ObjectInputStream is = new ObjectInputStream(fi);
		    
		    
		    
		    array[0] = (tier)is.readObject();
		    array[1] = (tier)is.readObject();

		    System.out.println(array[0].getClass().getName());
		    System.out.println(array[1].getClass().getName());
		    
		    
    	}catch (Exception e) 
    	 {
      		System.err.println(e.toString());
    	 }
	}
}

Läuft ja auch wunder bar, nur wenn ich primitive Datentypen verwende kann ich sie nicth auf object casten und ich weiß einach nicht warum

Object a = (Object) os.readObject(); //geht einfach nicht bei primitiven datentypen
 

meez

Top Contributor
Anonymous hat gesagt.:
Also ich hatte mir das mal ungefähr so vorgestellt :
Läuft ja auch wunder bar, nur wenn ich primitive Datentypen verwende kann ich sie nicth auf object casten und ich weiß einach nicht warum

Object a = (Object) os.readObject(); //geht einfach nicht bei primitiven datentypen

Hmmm...Ich bin zwar nicht Experte, aber könnte es daran liegen, das sie primitive sind...
 

wranger

Mitglied
ÄÄÄÄhm geht doch mit primitiven Datentypen
Code:
class Start 
{ 
    
   public static void main(String args[]) 
   { 
     
       
       Integer a1 = new Integer(5);
       Double d1 = new Double(5.5);
      try 
       { 
          FileOutputStream fo = new FileOutputStream("tier.ser"); 
            ObjectOutputStream os = new ObjectOutputStream(fo); 
          
          os.writeObject(a1); 
          os.writeObject(d1);  
          os.close(); 
          
          /*Array Anlegen*/ 

         Number[] array = new Number[3]; 
          
          
         FileInputStream fi = new FileInputStream("tier.ser"); 
          ObjectInputStream is = new ObjectInputStream(fi); 
          
          
          
          array[0] = (Number)is.readObject(); 
          array[1] = (Number)is.readObject(); 

          System.out.println(array[0].getClass().getName()); 
          System.out.println(array[1].getClass().getName()); 
          
          
       }catch (Exception e) 
        { 
            System.err.println(e.toString()); 
        } 
   } 
}
Ausgabe:
java.lang.Integer
java.lang.Double

Ohne die jedoch vorher einem Objekt zuzuweisen wird das nei funktionieren!
 

me1357

Mitglied
@wranger
Das ist doch jetzt genau ohne primitive Datentypen .. die Wrapper-Klassen für primitive Datentypen sind ja Klassen (sonst würden sie wohl nicht so heissen)
Immerhin .. damit ist das Problem gelöst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Java System.out::println Allgemeine Java-Themen 1
V System.out.println an jeder Stelle im Projekt löschen Allgemeine Java-Themen 4
F System.out.println mit log4j ersetzen Allgemeine Java-Themen 10
D Listener auf System.out.err / System.out.println Allgemeine Java-Themen 5
E System.out.println Allgemeine Java-Themen 5
A System.out.println mit Farbe Allgemeine Java-Themen 6
B Console Anwedung mit Rewrite auf ein System.out.println ? Allgemeine Java-Themen 3
N Farbe ändern bei System.out.println Allgemeine Java-Themen 2
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
B Lottospielen mit System, Versuch 2, noch umständlicher als vorher Allgemeine Java-Themen 1
J Frage zu System.getproperties. Allgemeine Java-Themen 60
sascha-sphw Erste Schritte Unit und Integration-Tests im Java Modul System Allgemeine Java-Themen 10
F Frage zu System.in Allgemeine Java-Themen 3
E System property setzten Allgemeine Java-Themen 8
Kirby.exe Movement System für Spiel Allgemeine Java-Themen 13
O Beziehung System.exit(x) <>Errorlevel Allgemeine Java-Themen 2
B System.out Ausgabe auf jtextarea Fehlersuche Allgemeine Java-Themen 8
F System Tray Menubutton ActionListener Allgemeine Java-Themen 5
H Im Tiled-Map-System ein Item anklicken Allgemeine Java-Themen 0
S Java Plugin System (ohne OSGI) Allgemeine Java-Themen 10
D System.arraycopy verhält sich seltsam Allgemeine Java-Themen 1
C Login System Allgemeine Java-Themen 19
A BufferedReader ohne System.in Allgemeine Java-Themen 9
VfL_Freak JDK installieren System-Property "user.dir" Allgemeine Java-Themen 6
J System.arraycopy ergibt anderes Resultat als for-loop Allgemeine Java-Themen 4
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
D Methoden Java Applikation Die System Auslastung optimieren ? Allgemeine Java-Themen 7
S Ist Java ein geschlossenes System? Allgemeine Java-Themen 2
L Erste Schritte Suche Java Wiki System? Allgemeine Java-Themen 5
chuxXo System/JLayer Volume ändern Allgemeine Java-Themen 0
Neumi5694 System.out und System.err umleiten - NICHT im Quelltext Allgemeine Java-Themen 4
X System.out/err(Die Console) in JTextArea ausgeben Allgemeine Java-Themen 2
S Best Practice System.arrayCopy verändert Ziel-Array Allgemeine Java-Themen 2
A Methoden Der Sinn von system.out.print(); Allgemeine Java-Themen 9
A System freezes when trying to run external command from Java with wait for Allgemeine Java-Themen 3
A Java | Login-System Allgemeine Java-Themen 3
C System.out.print("") Compiler Fehler Allgemeine Java-Themen 2
Joew0815 Best Practice Wie am besten Plugin-System erstellen? Allgemeine Java-Themen 12
C System.in erhält Input von Tastatur. wo wird das festgelegt? Allgemeine Java-Themen 4
F Benachrichtigungs-System Webapp Java Servlet Allgemeine Java-Themen 10
M collection persistence system Allgemeine Java-Themen 4
D System.out's in String speichern. Allgemeine Java-Themen 2
H Interpreter-Fehler ArrayIndexOutOfBoundsException bei System.arraycopy() Allgemeine Java-Themen 3
M System herausfinden Allgemeine Java-Themen 6
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
G java.exe in System 32. Hilfe!!! Allgemeine Java-Themen 8
R Methoden Tag System Problem Allgemeine Java-Themen 3
J System.out im GUI anzeigen Allgemeine Java-Themen 3
N System.exit(0/1) Allgemeine Java-Themen 3
D System.LoadLibrary(..) - Programm stürzt ab Allgemeine Java-Themen 2
U Classpath DLLs mittels System.load() laden: Allgemeine Java-Themen 6
G Input/Output System.in "umbiegen" für junit-Test Allgemeine Java-Themen 4
Kr0e User management system Allgemeine Java-Themen 2
S Java Programm -System Neustart überleben? Allgemeine Java-Themen 3
Rudolf Wann System.exit und wann dispose? Allgemeine Java-Themen 9
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
agent47 Plugin System Verständnisfrage Allgemeine Java-Themen 6
M Wie externe System-Ressourcen zwangsweise freigeben Allgemeine Java-Themen 2
E Durch System.in.read() blockierten Thread stoppen Allgemeine Java-Themen 10
P System.out im Eclipse plugin Allgemeine Java-Themen 4
C File System Watcher Allgemeine Java-Themen 2
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
A Problem mit System.getProperty(...) Allgemeine Java-Themen 5
D System.loadlibrary funktioniert nicht Allgemeine Java-Themen 6
H Event ähnliches System Allgemeine Java-Themen 20
Dissi Gammawerte des Grafiktreibers / System ändern? Allgemeine Java-Themen 3
M Plugin-System Allgemeine Java-Themen 4
A NullPointer bei System.getProperty("file.seperator") Allgemeine Java-Themen 4
R System.out oder System.err? Allgemeine Java-Themen 10
M Wie kann ich alle System.out Strings in ein log window umleiten? Allgemeine Java-Themen 6
K System.exec() Programm mit mehreren Parametern Allgemeine Java-Themen 8
G unerklärliches System.out Allgemeine Java-Themen 3
M System.setProperty("javax.net.ssl.trustStore", "mykey.pkx"); Allgemeine Java-Themen 1
T System Preferences + LInux (Ubuntu) Allgemeine Java-Themen 8
G OutputStream to System.out Allgemeine Java-Themen 35
J Wo werden die System properties gespeichert Allgemeine Java-Themen 12
C JSR295 in Produktiven System zu empfehlen? Allgemeine Java-Themen 3
B System CPU Zeit / Last auslesen Allgemeine Java-Themen 2
G Bringt es etwas System.gc() nach großen Aufgaben aufzurufen? Allgemeine Java-Themen 2
T Feststellen ob System-Konsole verfügbar Allgemeine Java-Themen 2
L remote debugging of a multi threaded system Allgemeine Java-Themen 2
F Probleme mit eigenem Plugin-System Allgemeine Java-Themen 3
L System.exit Allgemeine Java-Themen 3
G System.out und String machen was anderes Allgemeine Java-Themen 5
G System.out im window h.inein bringen? Allgemeine Java-Themen 8
A System.in pipen Allgemeine Java-Themen 3
P System.getProperty zu Classloader Allgemeine Java-Themen 21
I Am System angemeldeten Benutzer abfragen Allgemeine Java-Themen 11
E System.out umleiten Allgemeine Java-Themen 2
S system.out und system.err einer Methode in Datei schreiben. Allgemeine Java-Themen 7
S System Informationen auslesen. Allgemeine Java-Themen 3
N Thread und System.out.print() Allgemeine Java-Themen 2
K Kann man System.out in eine Datei speichern? ähnlich wie log Allgemeine Java-Themen 7
B Native DLL zweimal laden: System.load(sPath); Allgemeine Java-Themen 5
P System.getProperty("user.dir") Allgemeine Java-Themen 10
K Abfrage ob JRE oder JDK auf System installiert ist. Allgemeine Java-Themen 12
B serlvet system.out ausgabe Allgemeine Java-Themen 4
N Plugin-System: Klassen über String laden Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben