2017-02-13 6 views
0

Ich habe Probleme, "publishResultCode" zu verstehen, kann jemand bitte die Bedeutung dieser Zeile und der Operatoren aufschlüsseln?Java: Hilf mir, diese Zeile zu analysieren oder zu verstehen?

String publishResultCode = value == null ? null : value.toString(); 
if ("SUCCESS".equals(publishResultCode)) { 
    return true; 
+1

auf dem ternären Operator und die Rangordnung von „=“ Lesen und „==“. –

Antwort

3

Ok, also lassen Sie uns zuerst Reihenfolge der Vorgänge aufklären

String publishResultCode = ((value == null) ? null : value.toString()); 

Nun ist die == Operator Sie wissen einfach Vergleich ist. Die Frage stellt sich wahrscheinlich mit dem Operator ?:. Im Allgemeinen A ? B : C bedeutet "wenn A ist wahr, zurückgeben B; andernfalls zurück C". Und zu guter Letzt natürlich = ist Aufgabe.

Also: Wenn valuenull ist, setzen publishResultCode zu null; Wenn jedoch value nicht null ist, setzen Sie publishResultCode auf den Wert, der durch Aufrufen von value.toString() zurückgegeben wird.

+0

vielen dank. Diese Operatoren machen Code prägnant, aber ich muss mich nur daran gewöhnen – stfudonny

2
if(value==null) 
    publishResultCode=null; 

else publishResultCode=value.toString(); 
1

Dies setzt String publishResultCode als null, wenn value null ist und setzt es als value, wenn es nicht ist. Der Code kehrt zurück, wenn publishResultsCode das Wort "ERFOLGREICH" ist. Das Fragezeichen nach value==null ist im Grunde eine if-else-Anweisung, wenn value ==null dann publishResultCode = null, sonst publishResultCode = value.

1

Ich glaube, tief Sie brauchen nur diese: D

return value != null && "SUCCESS".equals(value.toString()); 
+0

Vielleicht. Er zeigte nicht, was passiert, wenn "SUCCESS" .equals (value.toString()); 'false zurückgibt. Vielleicht kommt es nicht sofort zurück. Und wenn das der Fall ist, würde "SUCCESS" zurückgeben .equals (value.toString()); "würde ausreichen, da dies bereits falsch ist, wenn" value "null ist –

+0

Maybe +1. Wollen wir nicht auch NullPointer vermeiden und false zurückgeben, wenn der Wert null ist? (Wenn das ist, was passieren soll) – Prague

+0

Hm. Ich schaute mir an, was "SUCCESS" .equals() 'tun würde und vernachlässigte, dass ein Methodenaufruf erforderlich war. Ja, der Extra-Check lohnt sich –

Verwandte Themen