2013-10-17 17 views

Antwort

11

Ich sehe keine mögliche Vereinfachung. Ich würde die Warnung einfach ignorieren.


Update: Wenn Sie jedoch Methode wie folgt aussehen:

return !(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY); 

Oder auch:

if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY) 
    return false; 
return true; 

Man könnte es so weit verändern

return point.x >= minX && point.x <= maxX && point.y >= minY && point.y <= maxY; 

ich d Ich weiß nicht, ob das für Menschen "vereinfacht" ist.

+0

Dies war in der Tat der Fall. Ich suchte nach einer Vereinfachung innerhalb der if-Klausel. Deshalb konnte ich es nicht finden. Ich ging mit deinem letzten Vorschlag; es machte mehr Sinn für mich. – kiel814

0

Versuchen Sie, es in zwei if-Anweisungen zu trennen: eine für "x" -Koordinaten, eine für "y".

if(point.x < minX || maxX < point.x) 
    return false; 
else if(point.y < minY || maxY < point.y) 
    return false; 
+0

Dies entspricht nicht dem, was OP verlangt. – Smit

3

Wenn IntelliJ einer möglichen Vereinfachung warnt, es bietet oft die Vereinfachung durchzuführen (durch die gelbe Glühbirne klicken). Was passiert, wenn Sie das tun?

+0

In meiner Version gab es keine Glühbirne, aber es gab eine anklickbare QuickInfo. Vielen Dank! – kiel814

+0

Vielen Dank ... es funktioniert für mich –

0

Vielleicht könnten Sie so etwas wie dies versuchen:

return new Rectangle(minX, maxX, minY, maxY).contains(point); 

Was aus einer Booleschen Algebra Perspektive zu vereinfachen, müssen Sie für Martin Antwort suchen werden. Tatsächlich müssen Sie es nicht einmal vereinfachen, weil der Compiler das automatisch für Sie erledigt. Zum Beispiel wird !(a && b) zu !a || !b vereinfachen, weil es schneller ist, jede Variable separat zu überprüfen, anstatt eine temporäre Variable zu erstellen und den Wert davon zu überprüfen.