2016-06-24 3 views
-3

Was ist der Unterschied zwischen diesen in Android/Java? Was ist effizienter und mit welchem ​​Werkzeug haben Sie die Unterschiede gefunden?Andorid Java String - Was ist besser? "" +, toString(), String.valueOf()?

String text = input.getText().toString(); 

String text = String.valueOf(input.getText()); 

String text = input.getText() + ""; 

Eingang unter der Annahme ist nicht null ...

EDIT: input.getText() ein Editable zurückgibt.

+2

Mögliches Duplikat von [Integer.toString (int i) vs String.valueOf (int i)] (http://stackoverflow.com/questions/3335737/integer-tostringint-i-vs-string-valueofint-i) –

+0

@Durgpal Singh - das ist eine ganz andere Frage – Nickmccomb

+0

Welchen Typ gibt input.getText() zurück? –

Antwort

3

Definitiv toString().
Es eindeutig angibt, was Sie wollen, d. H. Die String der zurückgegebenen Editable erhalten.

getText() kann nicht null zurück, so wird die Null-Sicherheit von String.valueOf() nicht benötigt wird, und String.valueOf() einfach dreht sich um und ruft toString(), also warum es nicht nur direkt anrufen, denn das ist kürzer?

input.getText() + "" ist nur faul und obskur und erzeugt schlechten Code. Sicher, JIT kann es beseitigen, aber es ist immer noch ein Hack. (Meine Meinung sowieso)

+0

Das ist eine bessere Antwort. Ich habe immer .toString() verwendet, aber wir haben Outsourcing und sie verwenden alle "" + input.getText() und ich habe mich gefragt, ob es schneller ist. Ich fand einen anderen Post, der sagte, dass es so langsamer ist, also scheint es, dass toString() die effizienteste und meiner Meinung nach elegante Lösung ist. – Nickmccomb

0

toString() ist die beste Methode, um anzurufen. text+"" ist die schmutzige Art der Codierung.

Verwandte Themen