1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

non-static method[...]from a static context

  • Ekimus
  • 10. Dezember 2002 um 16:40
  • Unerledigt
  • Ekimus
    10
    Ekimus
    Mitglied
    Punkte
    1.090
    Beiträge
    174
    • 10. Dezember 2002 um 16:40
    • #1

    Hi also ich versuch grad mich mit den Eingabemöglichkeiten in Java rumzuspielen dabei hab ich in java.io readInt und die alles möglich Entdeckt das auch in der EprogIO vorkommt.

    Jetzt denk ich mir verwend ma halt mal das nur:

    Java-API

    Zitat


    readInt

    public final int readInt()
    throws IOException

    See the general contract of the readInt method of DataInput.

    Bytes for this operation are read from the contained input stream.

    Specified by:
    readInt in interface DataInput

    Returns:
    the next four bytes of this input stream, interpreted as an int.
    Throws:
    EOFException - if this input stream reaches the end before reading four bytes.
    IOException - if an I/O error occurs.
    See Also:
    FilterInputStream.in

    Alles anzeigen

    soweit ok hab ich folgendes versucht:

    int x = DataInput.readInt();
    int x = DataInputStreamer();
    und imm kommt die Compilermeldung

    Zitat


    non-static method readInt() cannot be referenced from a static context
    int x = DataInputStream.readInt();

    Könnte mir da jemand aufklärung geben wie ich von meiner static Methode auf diese zugreifen kann? weil mein Büchlein hült sich darüber in schweigen.

    Martin Marcher
    [FONT=arial, helvetica, sans-serif]Immersive Consultant
    [/FONT]
    http://martinmarcher.com
    Mobile/Cell: +43 / 660 / 62 45 103
    http://www.linkedin.com/in/martinmarcher
    UID: ATU68801424

  • lj_scampo
    8
    lj_scampo
    Mitglied
    Reaktionen
    2
    Punkte
    557
    Beiträge
    110
    • 10. Dezember 2002 um 16:43
    • #2

    versuch mal int x = (new DataInput()).readInt();

  • Ekimus
    10
    Ekimus
    Mitglied
    Punkte
    1.090
    Beiträge
    174
    • 10. Dezember 2002 um 16:53
    • #3

    ok habs jetzt es muss (im nachhinein klingts eh logisch) ein Inputstream angebegeben werden.

    also

    Code
    int x = new DataInputStream(System.in).readInt();


    Dazu hätt ich gleich noch eine Frage weil sich der Compiler beschwert das ich eine mögliche IOException abfangen muss. Das ist zwar nicht das Problem aber irgendwie bin ich verwundert das ich gezwungen werde die Exception abzufangen. Woher kommt das. ich meine bei zB den EPROG beispielen die ich gemacht hab hat mich der Compiler nicht gewarnt wenn ich eine mögliche auftretende EprogException nicht abgefangen hab.

    Martin Marcher
    [FONT=arial, helvetica, sans-serif]Immersive Consultant
    [/FONT]
    http://martinmarcher.com
    Mobile/Cell: +43 / 660 / 62 45 103
    http://www.linkedin.com/in/martinmarcher
    UID: ATU68801424

  • ze_artfuldodger
    5
    ze_artfuldodger
    Mitglied
    Punkte
    265
    Beiträge
    53
    • 10. Dezember 2002 um 17:05
    • #4

    mhm, ich glaube nicht alle methoden der eprog-klassen
    werfen exceptions - readword z.b. nicht, readint hingegen
    schon (wenn keine zahl eingegeben wurde). grundsätzlich
    mußt du in java alle exceptions die auftreten können
    abfangen, und sei es auch nur durch ein

    catch(Exception ex)

    daß dann alle exceptions (da alle von Exception erben)
    abfangen würde.

    einzige ausnahme sind die runtime-exceptions (dazu
    zählt u.a. die nullpointer- oder die arrayindexoutofbounds-
    exception). diese mußt du nicht explizit abfangen.

    mfg
    art

    "A nation that limits freedom in the name of security will have neither."
    - Thomas Jefferson, The United States of America's 3rd President

  • lj_scampo
    8
    lj_scampo
    Mitglied
    Reaktionen
    2
    Punkte
    557
    Beiträge
    110
    • 10. Dezember 2002 um 17:21
    • #5

    @Woher kommt das:
    Man hat die Moeglichkeit, in Methoden Exceptions zu werfen, wenn ein Fehler auftritt, den man selber nicht behandeln kann (z.B. wenn bei readInt kein int eingegeben wurde sondern ein string). Es waere ja bloed, wenn readInt da selbst z.B "no int" ausgeben wuerde, weil koennte ja sein, dass man diesen Fehler in der aufrufenden Methode anders behandeln will (z.B. durch einen Stromschlag, den der User bekommt *g*). Deshalb wirft readInt eine Exception, die Du abfangen und behandeln musst.
    Es gibt auch die Moeglichkeit, diese Exception weiterzureichen. Aber spaetestens die letzte Methode (main) muss eine Exceptionbehandlung machen.

  • ze_artfuldodger
    5
    ze_artfuldodger
    Mitglied
    Punkte
    265
    Beiträge
    53
    • 10. Dezember 2002 um 17:54
    • #6
    Zitat

    Aber spaetestens die letzte Methode (main) muss eine Exceptionbehandlung machen.

    is nicht mal notwendig - auch die main-methode kann
    munter weiterwerfen wenns gewünscht is.

    "A nation that limits freedom in the name of security will have neither."
    - Thomas Jefferson, The United States of America's 3rd President

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern