Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Wie benutze ich "currentTimeMillis()"?

Wie benutze ich "currentTimeMillis()"?

jonny
jonny21.04.0516:09
Hi,
ich beschäftige mich seit kurzem mit Java.

Mein gegenwärtiges Problem:

Ich möchte über die Methode "currentTimeMillis()" den entsprechenden Wert abrufen (ist für einen einfachen Timer).

Ich bekomme aber immer die Meldung cannot resolve symbol: method currentTimeMillis()!

Der Aufruf erfolgt in der Form: long zeitVar_1 = currentTimeMillis();

Da das ja eigentlich eine Bibliotheksmethode ist, sollte es doch so klappen?!??

Bei der Bibliotheksmethode Color hintergrundFarbe = getBackground(); funktioniert das doch auch...

Bin für Hilfe sehr dankbar.

Gruß

jonny
0

Kommentare

kus21.04.0516:17
Probier mal: long zeitVar_1 = System.currentTimeMillis(); - das sollte funktionieren...
0
Rantanplan
Rantanplan21.04.0516:25
jonny

Du solltest dir die Java-Einführung nochmals intensiv durchlesen... Besonders den Punkt über Objektorientierung.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
jonny
jonny21.04.0516:33
Jau, das funktioniert!

Vielen Dank, kus!

(Java.lang.System wird nicht automatisch beim Erstellen eines AWT Applet Projekts importiert....)

Danke nochmal für die schnelle Antwort!


Gruß

jonny

0
Christian Fries21.04.0516:38
jonny
(Java.lang.System wird nicht automatisch beim Erstellen eines AWT Applet Projekts importiert....)

Schau doch noch mal Rantanplans Antwort. Dein Fehler war eher, dass Du die Klasse nicht angegeben hat. currentTimeMillis ist eine Methode der Klasse System.

java.lang.System wird - so glaube ich - importiert.

0
jonny
jonny21.04.0516:49
Christian Fries

java.lang.System wird - so glaube ich - importiert.

Der Meinung war ich auch. Ist aber wohl doch nicht so (kann sein, dass das erst seit XCode 2.0 der Fall ist - ich hab jetzt leider gerade kein XCode 1.5 am Start, um das zu checken.

Ist aber - das muß ich zugeben - ein ziemlich offensichtliches Problem gewesen

0
Christian Fries21.04.0517:14
Ja. Das Problem war recht offensichtlich. Ich glaube Rantanplan und ich wollten Dich nur (ganz lieb) darauf hinweise WAS das Problem ist:

Es fehlte das System. vor der Methode. Nicht der import.
0
kus21.04.0517:33
Genau. Das Package java.lang.* wird immer automatisch importiert. System hat als Klasse die statische Methode currentTimeMillis(). Und ein korrekter Aufruf einer statischen Methode ist immer 'Klasse'.'Methode'.

Ich empfehle dir A Programmer's Guide to Java Certification (Mughal/Rasmussen), auch wenn du dich nicht zertifizieren willst. Das Buch erklärt von Adam und Eva weg so ziemlich alles, was mit den Grundlagen von Java zu tun hat.
0
jgraux21.04.0517:34
Hallöle!

Vielleicht auch nochmal von mir ein kleiner Erklärungsversuch:
In Java als objektorientierter Sprache sind *alle* Methoden "an Klassen gebunden". Dabei gibt es zwei Arten von Methoden.
Einmal solche, die für eine Klasse definiert sind wie System.currentTimeMillis(). Die Klassenmethoden müssen also immer mit Klassenname.methodenname() aufgerufen werden.
Zum anderen gibt es Instanzmethoden wie getBackground(), die an Objekte (Instanzen, also Ausprägungen) einer Klasse gebunden sind. Dann muss zuerst über einen Konstruktor ein Objekt dieser Klasse erzeugt werden und dann über das Objekt auf die Methoden zugegriffen werden, z.B. Panel p = new Panel(); p.getBackground();
Ein anderer Weg, automatisch den leeren Konstruktor (ohne Parameter, wenn vorhanden) aufzurufen, ist eine eigene Klasse von einer bestehenden abzuleiten. Dies hast Du denke ich gemacht. Der Methodenaufruf getBackground() wird dann von Java intern zu this.getBackground() aufgelöst, wobei this das Objekt ist, "in" dem Du gerade arbeitest, sprich, in dessen Klassendefinition Du gerade in einer Instanzmethode oder dem Konstruktor etwas programmierst.
0
kus21.04.0517:47
Hey - da hat's ja richtig viele Java Programmierer!!! Ich dachte immer, ich wäre der einzige im Forum...
0
Gilderoy Lockhart23.04.0512:46
jonny schrieb
"java.lang.System wird - so glaube ich - importiert.

Der Meinung war ich auch. Ist aber wohl doch nicht so (kann sein, dass das erst seit XCode 2.0 der Fall ist - ich hab jetzt leider gerade kein XCode 1.5 am Start, um das zu checken."

Hmm.. habe jetzt leider kein XCode 1.5. da, um das zu prüfen. Mit Tiger sollte es dann aber auf jeden Fall klappen, da wird java.lang.Tiger glaube ich automatisch importiert. Tiger ist ja der Nachfolger des aktuellen Systems (m.E. nennt man das Vererbung, bin mir da aber nicht sicher) und der kann das dann auch, aber es könnte sein, dass dann das Ergebnis ein anderes ist, weil ja dann ab 29.4.2005 gezählt wird.


0
MacMark
MacMark23.04.0513:34
jonny Woher hast Du Xcode 2?
Gilderoy Lockhart Und woher hast Du Xcode 2? java.lang.Tiger??? Willst Du uns hier verkohlen oder hast Du einfach nur keinen Plan? Ab 29.4. gezählt wird dann? Gehts noch? Wie kommt man auf so selten hirnfreie Ideen?
„@macmark_de“
0
Christian Fries23.04.0513:48
Das Package java.lang.* - also auch java.lang.System - wird automatisch von der Java Virtual Maschine importiert. Die Entwicklungsumgebung (XCode oder was auch immer) hat damit nicht zu tun.

Gilderoy Lockhart: Bitte setzte wenigstens ein wenn Du mit die Leute verarschen willst. Hier einem Anfänger einen solchen Mist zu erzählen finde ich aber nicht wie MacMark nicht lustig (und ich finde MacMarks ausdrucksweise mehr als passen). Bei Deinen nächsten Problemen überlege ich mir auch mal ein paar Irreführenden Antworten.
0
Christian Fries23.04.0513:49
Edit: soll heissen "finde ich aber wie MacMark nicht lustig"
(ein nicht zu viel)
0
Gilderoy Lockhart23.04.0514:25
Christian Fries und MacMark

Als hier nachgeholt:

I. A. versuche ich den Leuten auch bei den dümmsten Fragen zu helfen, auch wenn oft eher ein RTFM angebracht wäre. Mein Kommentar bezog sich auf jonnys Antwort, nachdem er doch schon (u.a. von Dir, Christian) auf das eigentliche Problem hingewiesen wurde. Wieso packt er denn plötzlich XCode aus? Deswegen auch mein Zitat. Da hilft man den Leuten und dann kommen die mit so einem Quatsch um die Ecke. Da hilft dann auch keine Erklärung von wegen Klassenoperationen und Instanzoperationen (bzw. Methoden).

Abgesehen davon: Einmal bei Google "currentTimeMillis()" eingegeben, und gleich an zweiter Stelle wird (sogar von Apple) ein Beispielprogramm mit der Verwendung von "currentTimeMillis()" angegeben, inkl. "System" davor. Und auch in der API-Doc sind massenweise Beispiele mit "System." davor.

Hmm.. ich fand das mit dem Zähler, der ab 29.4.2005 läuft (und nicht seit 1.1.1970) schon lustig... aber sei's drum.
0
Rantanplan
Rantanplan23.04.0515:16
Gilderoy Lockhart
Da hilft dann auch keine Erklärung von wegen Klassenoperationen und Instanzoperationen (bzw. Methoden).

Da möchte ich jetzt auch noch was dazu sagen. Die Fragestellung von jonny zeigt sehr deutlich, daß er den Punkt "Objektorientierung" noch nicht verstanden hat. Das ist keine Schande, er betreibt das ja offensichtlich nur aus Interesse und verdient nicht seine Brötchen damit. Was statische und dynamische Methoden - oder Klassen- und Instanzmethoden - sind, das ist eine ganz grundlegende Sache der Objektorientierung, sozusagen der Kern davon, den man in jedem Tutorial über OO-Sprachen gleich am Anfang beigebracht bekommt.

So. Man könnte jetzt natürlich hergehen und ihm das was in jedem Tutorial (oder in der Java-Doku) gleich zu Anfang schon steht, nochmals hier in eigenen Worten - in vielen Worten - nahezubringen. Wenn dir der Sinn danach steht, dann tu das. Wir haben ihn lieber darauf hingewiesen, womit er ein Problem hat und wo er sein Mißverständnis auflösen kann.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.