RSS-Feed anzeigen

Aktuelle Blog-Einträge

  1. Eine fehlende Optional-Methode und ein Workaround

    Ein wirklich hässliches Pattern, um mehrere Dinge auszuprobieren, bis eines davon klappt, ist:

    Java Code:
    1.  
    2. int x = ...
    3. int y = ...
    4. int z = ...
    5.  
    6. Integer result = null;
    7. if (x % 2 == 0) {
    8.     result = x / 2;
    9. }
    10. if (result == null && % 2 == 0) {
    11.     result = y / 2;
    12. }
    13. if (result == null && z % 2 == 0) {
    14.     result = z / 2;
    15. }
    16. String s = result == null
    17.     ? "all numbers
    ...
    Stichworte: java 8, optional
    Kategorien
    Kategorielos
  2. Dependency Injection mit der Reader-Monade

    Schon wieder nehme ich das böse M-Wort in den Mund! Dabei ist die Reader-Monade kaum mehr als eine einfache Function. Aber eins nach dem anderen.

    Zuerst einmal das Datenmodell mit einem Fake-Service:

    Java Code:
    1.  
    2. public class User {
    3.     public long id;
    4.     public String name;
    5.  
    6.     public User(String name, long id) {
    7.         this.id = id;
    8.         this.name = name;
    9.     }
    10. }
    11.  
    12. public interface UserService {
    ...

    Aktualisiert: 27.03.2015 um 09:40 von Landei

    Kategorien
    Kategorielos
  3. Das "Fluent Decorator Pattern"

    Ich lese gerade "DSLs in Action", und natürlich wird dort auch das Decorator-Pattern erwähnt. Das Beispiel sieht ungefähr so aus:

    Java Code:
    1.  
    2. Trade trade = new DeductCommisions(
    3.    new DeductTaxes(
    4.      new Trade()));

    Jedem, der schon einmal mit Java's I/O-Streams gearbeitet hat, wird das bekannt vorkommen. Nun wurde im Buch beklagt, dass diese Reihenfolge unnatürlich ist. Tatsächlich neigen wir ja eher dazu, andersherum zu denken: Nimm ...

    Aktualisiert: 09.08.2014 um 11:36 von Landei

    Kategorien
    Kategorielos
  4. Erweiterte erweitere For-Schleife in Java 8

    Wenn man beim Programmieren einen Gedanken der Art "es wäre doch cool, wenn..." hat, sollte immer einen Schritt zurücktreten, und darüber meditieren, ob die gewünschte Funktionalität vielleicht doch möglich ist. Insbesondere wenn man die Möglichkeit hat, mit Java 8 zu arbeiten.

    Eine der beliebtesten Verbesserungen in Java 5 war die erweiterte For-Schleife. Aber was gut ist, kann man ja vielleicht noch besser machen. Und Hand hoch, wem ist schon einmal der Gedanke ...
    Stichworte: java 8, lambda
    Kategorien
    Kategorielos
  5. Pattern-Matching in Java

    In Scala ist Pattern-Matching ein beliebtes Feature mit fast unbegrenzten Anwendungsmöglichkeiten (siehe z.B. http://timpt.de/topic146.html ). Nicht umsonst wird es oft als "switch auf Steroiden" bezeichnet. Im Rahmen des neuen neco4j Projekts habe ich überlegt, ob man das nicht auch in Java 8 nachbauen kann.

    Man kann, mit einigen Einschränkungen. Hier einmal ein kleines Anwendungsbeispiel:

    Java Code:
    1.  
    2. String string = ...
    3. String s = match(string,
    ...

    Aktualisiert: 01.06.2014 um 22:26 von Landei

    Stichworte: java 8, pattern matching
    Kategorien
    Kategorielos
  6. zipWith in Java 8

    Heute einmal ein ziemlich einfaches Beispiel, wie Lambdas das Leben in Java 8 leichter machen. In Haskell und Scala gibt es die Funktione zipWith, mit der zwei Datenstrukturen wie Listen durch elementweise Verknüfung zu einer neuen "zusammengeklebt" werden. Dabei muss man aufpassen: Ist eine der Ausgangsstrukturen länger als die andere, werden die "überflüssigen" Elemente einfach ignoriert. In Java bietet sich so eine Funktion an mindestens zwei Stellen an: Bei Iterables ...

    Aktualisiert: 19.05.2014 um 20:17 von Landei

    Stichworte: for-schleife, java 8, lambda, zip
    Kategorien
    Kategorielos