In den numerischen Wrapper-Klassen, also Byte, Short, Integer, Long, Float, Double und auch Character – obwohl Character nicht die Basisklasse Number erweitert – gibt es seit Java 8 je drei neue Methoden: sum(…)/max(…)/min(…), die genau das machen, was der Methodenname verspricht.
final class java.lang.Byte|Short|Integer|Long|Float|Double
extends Number
implements Comparable<Integer>
§ static Typ sum(Typ a, Typ b)
Bildet die Summe zweier Werte und liefert diese zurück. Es entspricht einem einfachen a + b. Die Angabe Typ steht dabei für den entsprechenden primitiven Typ byte short, int, long, float oder double, etwa in int sum(int a, int b).
§ static Typ min(Typ a, Typ b)
Liefert das Minimum der zwei Zahlen.
§ static Typ max(Typ a, Typ b)
Liefert das Maximum der zwei Zahlen.
final class java.lang.Character
implements Comparable<Character>, Serializable
§ static Typ sum(Typ a, Typ b)
Liefert (char)(a + b) zurück.
§ static Typ min(Typ a, Typ b)
Liefert das kleinere der beiden Zeichen bezüglich der Unicode-Position.
§ static Typ max(Typ a, Typ b)
Liefert das größere der beiden Zeichen.
Die Methoden sich für sich genommen nicht spannend. Für die Summe (Addition) tut es genauso gut der +-Operator – er steckt sowieso hinter den sum(…)-Methoden – und so wird keiner auf die Idee kommen i = Integer.sum(i, 1) statt i++ zu schreiben. Für das Maximum/Minimum bietet die Math-Klasse auch schon entsprechende Methoden min(a,b)/max(a,b). Der Grund für diese drei Methoden ist vielmehr, dass sie im Zusammenhang mit Lambda-Ausdrücken interessant sind – dazu später mehr.
Hi Chris,
deine Blogeinträge sind super. Wenn du nur noch das Syntax-Highlighting hinbekommst wärst du weltspitze!
Danke
lg Andi