Welche Probleme ergeben sich, wenn Sie veraltete Methoden/Funktionen in Java?
Tun irgendwelche Schwierigkeiten auftreten, die aufgrund der Verwendung von veralteten Funktionen in Java?? Wenn dem so ist, warum halten Sie diese Funktion?? Ist es eine schlechte Angewohnheit, wenn Sie verwenden eine veraltete Methode in Java wie
java.sql.Date.getMonth
oder getYear
oder getDate
???
- Verwandte: Herb Sutter Artikel, "Unterbrechen Sie Höflich," aus seiner Serie über die Effektive Parallelität.
- Lesen Sie stackoverflow.com/questions/2941900/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige potenzielle Probleme sind:
System.runFinalizersOnExit
und seinen bösen ZwillingRuntime.runFinalizersOnExit
)Thread.stop
)Referenzen
Fragen
Thread.stop
,Thread.suspend
,Thread.resume
undRuntime.runFinalizersOnExit
veraltet?" download.oracle.com/javase/1.4.2/docs/guide/misc/...Keine Methoden haben, tatsächlich entfernt wurde, aber so kann vorhandener code laufen zu halten. Die Sonne wurde sehr konzentriert auf rückwärts-Kompatibilität.
Der wichtigste Vorteil besteht in der Abkehr von code, der aus irgendeinem Grund gefunden wurde, um die Arbeit suboptimallly, und in der Regel gibt es einen Ersatz an anderer Stelle in der runtime-Bibliothek. Daher ist es eine schlechte Angewohnheit, Sie zu benutzen, und Sie beherzigen sollten, und verwenden Sie die empfohlenen Ersatz, wenn die compiler-flags eine Missbilligung. Es ist generell eine gute Idee, auf die Beseitigung von compiler-Warnungen.
Sehen Sie eine Liste von dem, was veraltet ist, in den Javadocs. Die Java-5-Liste ist bei http://download.oracle.com/javase/1.5.0/docs/api/deprecated-list.html
Veralteten Methoden gehalten werden, so dass code geschrieben für eine frühere version von Java noch funktioniert. Wenn Sie nur entfernt den code dann zuvor funktionierenden code würde aufhören zu arbeiten, wenn Sie Java aktualisiert auf eine neue Version.
Verwendung von deprecated Funktionen wird nicht dazu führen Sie irgendwelche Probleme über das, was verursacht die Methode als veraltet. Allerdings ist es am besten, um herauszufinden, was ersetzt die veraltete Methode. Die deprecated Funktionen wurden durch neue Funktionen möglicherweise finden sich in einer neuen Klasse. Viel von dem veraltet-Date-Funktion verschoben wurde, um den Kalender. Überprüfen Sie die Javadoc für die zu sehen, die empfohlene Ersatz.
Den code brechen kann in der Zukunft...
deprecated Funktionen sind eine Warnung, dass diese Funktion Weg gehen wird.
Nach alternativen Möglichkeiten suchen, um das problem zu beheben jetzt, oder Sie werden
haben Sie den code brechen in die Zukunft.
Einer veralteten Klasse oder Methode könnte in einer zukünftigen version entfernt. Die Sonne hatte die Gewohnheit, die veralteten Sachen und eigentlich nie, es zu entfernen, die meiner Meinung nach nicht so gut, weil es macht es scheinen Ok zu verwenden veraltete Methoden. Trotzdem sollte man nicht verwenden, veralteten Methoden, wo immer möglich (und es sollte immer möglich sein). Dies gilt insbesondere für externe Bibliotheken, die imho in der Regel nicht so Angst, wie die Sonne zum entfernen von deprecated-code.
Als andere haben darauf hingewiesen, die Sonne hat nie entfernt veraltete Methoden aus dem JDK, aber das gleiche ist nicht wahr, mit veralteten Methoden in Bibliotheken von Drittanbietern. Diejenigen, die tun, verschwinden manchmal (das Lucene-Projekt hat zum Beispiel ein eher "fluid" - API hier, tun großen Säuberungsaktionen mit großen versionups).
Sogar im JDK, die Methode als veraltet, bedeutet, dass "es einen besseren Weg, dies jetzt zu tun", und Sie sollten wahrscheinlich aktualisieren Sie den code, um die neue version nutzen.
Es ist sehr selten, dass der abgelehnte Methode funktioniert nicht korrekt für das, was es ursprünglich zu tun, aber der Ersatz wird in der Regel arbeiten zuverlässiger, oder in Umständen, oder in einer mehr Allgemeinen Art und Weise. Gute Beispiele sind hier die Date-Funktionen, die Sie erwähnen (veraltet, weil Sie nicht arbeiten gut mit unterschiedlichen locales/Kalender) oder String-zu-byte-Konvertierungen, die nur 7-bit-ASCII-Zeichen. Diese Warnungen/Einschränkungen nicht behoben werden kann, ohne eine neue Schnittstelle, oder weil jemand kann, hängt von den "broken" - Implementierung, so dass anstelle der Aktualisierung der Methode, die Sie missbilligen und bieten Sie eine alternative.