Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
6.2 return NaN;?
Hallo, etwas ueber die Rueckgabe der NaN. Wenn ich einfach “return NaN;” geschrieben habe, gibt es immer ein error.
Wie kann man eine NaN zurueckgeben?
Danke!
Mit Double.NaN
Meinst du “return double.NaN;”? Ich habe gerade versucht, auch geht nicht, oder ich habe falsch verstanden? Danke!
Double wird groß geschrieben, also return Double.NaN;
Und die Methode muss selbstverständlich auch ein “double” als Rückgabewert erwarten.
Also, es funktioniert, vielen Dank!
java.io wird (zum Beispiel) verwendet, wenn man Eingaben vom Benutzer möchte, oder wenn man eine Textdatei einlesen/schreiben will.
Ist das in deinem Code der Fall? Wenn nicht, kannst du die Bibliothek wieder löschen, da sie nicht verwendet wird.
(Frage an die Profis: Tatsächlich wird die Bibliothek doch wahrscheinlich garnicht beim Kompilieren eingebunden, da der Kompiler das selbst checkt, oder? Bzw. bei Java checkt’s wshl der Interpreter.)
Es sollte nur der Code eingebunden werden, der benoetigt wird, ja.
Nur ist Java eine kompilierte und keine interpretierte Sprache, also wirds schon mal nicht beim Interpretieren gecheckt :p. (Wenn man denn die JVM als Interpreter des Java-codes bezeichnen will, okay, aber da wird dann definitiv nichts mehr ueberpueft)
In Java werden alle Aufrufe zur Compiletime aufgelöst. Die Imports geben nur den Namespace an in welchem gesucht werden soll.
Im kompilierten .class File stehen am ende nur noch die verwendeten Methoden und keine Imports mehr. Die unnötigen Imports sind also nach dem Kompilieren weg und haben keinen Einfluss.
Allerdings sollte man trotzdem darauf achten nur das zu importieren, was man auch braucht.
wieder zu java.io … das war in original Datei was ich heruntergeladen
vielleicht musste ich das benutzen , aber ich weiss nicht was damit richtig gemeint , ich glaube ich kann das nirgend wo klar erklärt , habe ich versucht ein bissen im Internet zu suchen , aber habe ich was unverständlich gefunden :S ..
und Diese Testfälle funktionieren nicht , ich bekomm so was
Exception in thread „main“ java.lang.NullPointerException
at VectorND.(VectorND.java:16)
at VectorNDTest.testDataConstructorWithNullData(VectorNDTest.java:37)
at VectorNDTest.testDataConstructor(VectorNDTest.java:46)
at VectorNDTest.main(VectorNDTest.java:178)
ich kann der Fehler nicht finden , wenn jemand eine Idee hat , wird viel einfacher für mich das zu reparieren
was wichtiges noch , mein Programm läuft gut und ergibt was erwartet
Vectors
VectorND with 2 dimensions: ( 1.000 , 2.000)
VectorND with 3 dimensions: ( 3.000 , 3.000 , 3.000)
Multiply v1 by 3.
VectorND with 2 dimensions: ( 3.000 , 6.000)
VectorND with 2 dimensions: ( 4.000 , 8.000)
Scalar product between v1 and v2: NaN
Scalar product between v1 and v3: 60.0
Scalar product between v3 and v1: 60.0
Normalize v2.
VectorND with 3 dimensions: ( 0.577 , 0.577 , 0.577)
Finished Vectors
Du kannst java.io einfach ignorieren. Du musst es nicht benutzen und es ist kein Problem, wenn dir Eclipse deswegen eine Warnung anzeigt. Mach dir deswegen keine Gedanken.
Es wird getestet, ob dein Programm sich richtig verhält, wenn new VectorND(null) aufgerufen wird. Du greifst in dem Konstruktor der Klasse VectorND in Zeile 16 der Datai VectorND.java auf eine Variable zu, die null ist. Wahrscheinlich handelt es sich dabei um die Variable double initData, die dem Konstruktor übergeben wird.