Variable class in java.lang.Object

blauerninja

Mitglied
Hallo,
ich bin dank Eclipse auf die statische Variable class der Klass Object gestoßen. Wenn man sie mit println(Object.class) ausgibt, wird die Klasse Object mit Paketnamen ausgegeben. Erzeuge ich ein Objekt vom Typ Object, so kann ich aber nicht auf diese Variable zugreifen.
So, meine Frage: was ist das überhaupt für eine Variable, die nicht einmal im Javadoc steht und wieso ist sie nicht zugreifbar, wenn ich ein Object-Objekt erstelle? Google war diesmal kein Freund und Helfer, vllt kennt sich hier jemand aus?

Wäre sehr dankbar.

Viele Grüße
 

ARadauer

Top Contributor
Erzeuge ich ein Objekt vom Typ Object, so kann ich aber nicht auf diese Variable zugreifen.
klar mit getClass...
So, meine Frage: was ist das überhaupt für eine Variable,
Das ist die Klasse des Objekts. bietet ganz nützliche Methoden Class (Java Platform SE 6)

die nicht einmal im Javadoc steht und wieso ist sie nicht zugreifbar,
klar... Object (Java Platform SE 6) ... erste Methode
/**
* Returns the runtime class of this {@code Object}. The returned
* {@code Class} object is the object that is locked by {@code
* static synchronized} methods of the represented class.
*
* <p><b>The actual result type is {@code Class<? extends |X|>}
* where {@code |X|} is the erasure of the static type of the
* expression on which {@code getClass} is called.</b> For
* example, no cast is required in this code fragment:</p>
*
* <p>
* {@code Number n = 0; }<br>
* {@code Class<? extends Number> c = n.getClass(); }
* </p>
*
* @return The {@code Class} object that represents the runtime
* class of this object.
* @see Class Literals, section 15.8.2 of
* <cite>The Java&trade; Language Specification</cite>.
*/
public final native Class<?> getClass();
 

blauerninja

Mitglied
Diese Variable ist static und da ich mittels Object.class darauf Zugriff habe, ist sie auch nicht private. Wieso kann man dann nicht so zugreifen:
Java:
Object a = new Object;
System.out.println(a.class);

aber damit schon:
Java:
System.out.println(Object.class);

Geht doch sonst bei allen statischen Klassenvariablen?

Und danke für die Antworten, habe nicht erwartet, dass es so schnell gehen würde^^
 

irgendjemand

Top Contributor
@TO
aber du hast dir schon mal die mühe gemacht ins "src.zip" im JDK-HOME reinzusehen oder ?

es gibt keine static variable in "Object" ...

das ginge auch gar nicht ... da ansonsten das was "Object.class" liefert gleich wäre mit dem was z.b. "String.class" liefert ... da eine static variable über alle instanzen hinweg auf das selbe objekt zeigt ...

"class" ist in java ein sog. KEYWORD ... und hat [NICHTS] mit einer variable zu tun ...
 

blauerninja

Mitglied
Laut Eclipse ist die Variable public static. Ich gebe halt ein Object (punkt) und diese Variable wird aufgelistet. Ok, hab jetzt auch mal die Klasse von Objekt angeschaut. Wieso listet Eclipse class auf?
Sorry für die vielen Fragen, aber bin noch ziemlich neu in Java.
 

Kevin94

Top Contributor
Weil Eclipse eine dumme IDE ist und das class-Literal (so nennt man X.class, in dem Fall also Object.class) sich wie eine öffentliche statische Variable verhält, führt die Autovervollständigung von Eclipse sie wie eine solche, in der Annahme das jeder Programmierer der sein Anfängerbuch durchgelesen hat weiß was damit gemeint ist. Und wenn du in Eclipse den Mauszeiger über ein class-Literal hältst zeigt es dir auch keine Variablen-Dokumentation und in der Outline wird sie auch nicht aufgeführt, woran man erkennen kann, dass es sich nur um eine Art "Workaround" in der Autovervollständigung handelt.
 

irgendjemand

Top Contributor
und mal wieder eine sache mehr die mich in meiner persönlichen einstellung bestätigt das man anfänger nicht gleich auf eine IDE loslassen sollte ... und schon gar nicht auf eine vermeintliche "java" IDE die nicht mal das "class"-literal richtig kennt

@TO
wenn eclipse dir X.class als "public static" anzeigt ist das definitiv ein fehler von eclipse ...
und eigentlich sollte "class" auch irgendwo in einer tabelle oder auflistung der in java vorhandenen keywords zu finden sein ...

vielleicht solltest du erstmal mit nem editor und ner console arbeiten und dir so einige grundlagen aneignen um später dann bei genau solche IDE-fails nicht wieder hier fragen zu müssen ...


btw : wenn in der DOC eine variable NICHT auftaucht ... bedeutet das entweder das es diese nicht gibt oder sie als private deklariert wurde *standard-doclet nimmt nur protected* ... wesshalb "public" mit der doc schon mal gar nicht in einklang zu bringen ist da es sonst dort gelistet sein müsste ...

auch wie bereits erwähnt wäre "static" unmöglich da eine static-variable *sog. klassen-variable* über alle instanzen hinweg auf ein und den selben speicherbereich zeigt ... wesshalb dann ALLE klasse "java.lang.Object" returnen müssten da Object die erste klasse ist die geladen wird ...
 

blauerninja

Mitglied
Naja, so ein Neuling bin ich nicht^^ wenn auch noch ein langer Weg vor mir liegt. Die Literale habe ich noch nicht gelernt und in dem Buch (Ratz,Scheffler: Grundkurs Programmieren in Java, Hanser Verlag, 2011) kommt das class-Literal nicht vor, da die Autoren dies wahrscheinlich nicht mehr zu den Grundlagen, sondern zu den weiter fortgeschrittenen Themen zählen. ibt es noch andere Literale neben true, false, null, this, super und class, die eine besondere Bedeutung wie class haben, also dass sie Beduetung im Sinne von Werten bzw. Referenzen haben? Mit new, if usw. kann man ja nicht arbeiten. Ich hoffe, es ist verständlich, was ich meine...
 

blauerninja

Mitglied
Hab noch ein Screenshot gemacht.


Leider wird da class in der Auto-Vervollständigung von Eclipse wie eine public static aufgelistet.

Nochmals ein großes Dankeschön
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
G auf variable in anderer class zugreifen Allgemeine Java-Themen 2
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
H lokale Variable bei Optional verwenden Allgemeine Java-Themen 11
A Variable in if initialisieren Allgemeine Java-Themen 23
S Variable als Objekt Name Allgemeine Java-Themen 3
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
P Variable wird in for - loop nicht richtig hochgezählt Allgemeine Java-Themen 11
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
A Variable, welche Exeption wirft als "Global" deklarieren Allgemeine Java-Themen 13
A Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
L Variablen Variable nicht aktualisiert Allgemeine Java-Themen 3
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
T AWT AWT-EventQueue-0 Null_Pointer_Exception durch Variable Allgemeine Java-Themen 12
M Variable ändern bei jedem Schleifendurchlauf Allgemeine Java-Themen 32
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
S JFrame Variable mitgeben Allgemeine Java-Themen 5
M Variable außerhalb Klasse definierbar? Allgemeine Java-Themen 2
X Bild -> lokale Variable -> DB -> lokale Variable Allgemeine Java-Themen 3
F Aktuelle Variable Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
J private static final String variable Allgemeine Java-Themen 8
A Long variable wird negativ??? Allgemeine Java-Themen 1
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
M Zeiger auf statische Variable Allgemeine Java-Themen 1
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
F Variable übergeben?! Allgemeine Java-Themen 2
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
T Variablen Variable wird als nicht genutzt angezeigt Allgemeine Java-Themen 8
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P Variable in Array stellen Allgemeine Java-Themen 11
M Arraynamen durch Variable festlegen lassen Allgemeine Java-Themen 5
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
G Variablen Variable extern speichern - wie? Allgemeine Java-Themen 9
M Variablen Wie Variable verfügbar machen? Allgemeine Java-Themen 16
A variable aus einer anderen klasse verändern Allgemeine Java-Themen 5
G Variable Methodenwahl Allgemeine Java-Themen 11
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
C Variablen Variable einer Klasse in einer anderen Klasse Nutzen Allgemeine Java-Themen 8
B Umgebungsvariable Variable wird nicht übernommen Allgemeine Java-Themen 4
N variable Anzahl von Objektinstanzen zur Laufzeit erstellen Allgemeine Java-Themen 4
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
algorismi int-variable Value Change event Allgemeine Java-Themen 3
E Variable dynamisch ausgeben Allgemeine Java-Themen 5
trash super() mit Variable bestücken Allgemeine Java-Themen 3
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3
B static Variable / Unterklasse Allgemeine Java-Themen 2
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
Daniel_L RegEx - variable Vorkommen ersetzen? Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
G Variable global nutzen Allgemeine Java-Themen 4
V Variable vom Typ String zum Typen "Message" konve Allgemeine Java-Themen 2
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
M Try-Catch: wie wird Variable bei Exception initialisiert? Allgemeine Java-Themen 8
G Speicherverbrauch einer Variable Allgemeine Java-Themen 2
C ArrayList mit Variable im Namen Allgemeine Java-Themen 16
T JNI Referenz auf Variable in Java? Allgemeine Java-Themen 2
G Überprüfen, ob Variable ein Array ist? Allgemeine Java-Themen 5
R Member-Variable erzwingen Allgemeine Java-Themen 17
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
M Zugriff auf Objekt, Name in Variable Allgemeine Java-Themen 3
G Problem mit einer Variable Allgemeine Java-Themen 3
O Future Variable Allgemeine Java-Themen 4
M variable übergeben NICHT KOPIEREN Allgemeine Java-Themen 12
loadbrain KeyEvent mit Variable verknüpfen Allgemeine Java-Themen 4
M Prüfen ob Variable vorhanden / initalisiert ist Allgemeine Java-Themen 4
G Variable wird ignoriert - warum ? Allgemeine Java-Themen 36
L ctrl-z wird nicht in Variable gespeichert Allgemeine Java-Themen 4
G Variable Anzahl JTextfleder Allgemeine Java-Themen 3
R Wenn Variable = wat ist Allgemeine Java-Themen 7
H Zugriff auf statische Variable synchronisieren Allgemeine Java-Themen 4
H globale Variable wird nicht überall erkannt Allgemeine Java-Themen 3
G Zugriff auf Variable in abgeleiteter Klasse Allgemeine Java-Themen 6
R Eine Variable an eine Methode mit Array übergeben Allgemeine Java-Themen 7
E Variable in einer Methode Allgemeine Java-Themen 13
O Environment Variable Setzen Allgemeine Java-Themen 2
G Referenz auf Variable! Allgemeine Java-Themen 3
C Variable aus einer Methode einlesen in einer verarbeiten und Allgemeine Java-Themen 6
G 1.5er String.format() -> variable Feldlaenge? Allgemeine Java-Themen 5
S wie übergebe ich eine Variable aus einer Methode an main() ? Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben