RSS-Feed anzeigen

Aktuelle Blog-Einträge

  1. Erweiterte For-Schleife mit Index - III

    Man könnte angesichts der beiden Vorgänger-Beiträge vielleicht denken, dass das das Beste wäre, was man aktuell mit Java hinbekommt. Aber es heißt ja auch, man soll absteigen, wenn das Pferd tot ist, und in diesem Fall wäre das die erweiterte For-Schleife, die einfach nicht flexibel genug für unsere Ansprüche ist.

    Wenn man sich davon löst, ist eine bessere Version wirklich trivial zu schreiben und zu benutzen, und diese ist auch sehr performant:

    Java Code:
    1.  
    2. import java.util.function.ObjIntConsumer;
    ...

    Aktualisiert: 26.05.2016 um 10:09 von Landei

    Kategorien
    Kategorielos
  2. Erweiterte For-Schleife mit Index - II

    In meinem vorigen Beitrag zum Thema habe ich die Kritik geerntet, dass bei jedem Schleifendurchlauf ein neues Objekt erzeugt werden muss. Folgende Lösung ist ziemlich "hacky", vermeidet aber die Objekterzeugung.

    Java Code:
    1.  
    2. import java.util.Iterator;
    3.  
    4. public class IndexedIterable<T> implements Iterable<T> {
    5.  
    6.     private final Iterator<T> iterator;
    7.     private int index = -1;
    8.     private boolean used = false;
    ...
    Stichworte: java
    Kategorien
    Kategorielos
  3. 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
  4. Firefox 4x.x-Tipps und -Tricks

    • Wenn ihr die Fensterposition und -Größe zurücksetzen möchtet, geht in den Profilordner und löscht die Datei xulstore.json
    • Wenn ihr Probleme mit dem Drucker oder dem Drucken habt, öffnet about:config und klickt bei dem Eintrag print_printer auf Zurücksetzen (selbiges funktioniert auch in Thunderbird)
    • Wenn ihr JavaScript (temporär) deaktivieren möchtet, öffnet about:config und klickt bei dem Eintrag javascript.enabled auf Umschalten
    • Wenn ihr das/den default zoom level ändern möchtet (alles
    ...

    Aktualisiert: 09.02.2016 um 15:17 von EagleEye

    Stichworte: firefox
    Kategorien
    Kategorielos
  5. Erweiterte For-Schleife mit Index

    Wie oft braucht man den Index der Elemente eines Iterables und hat dann nur die Wahl zwischen...

    Java Code:
    1.  
    2. List<String> names = ...
    3. for(int i = 0; i < names.size(); i++) {
    4.    System.out.println((i+1) + ".\t" + names.get(i));
    5. }

    ... und ...

    Java Code:
    1.  
    2. List<String> names = ...
    3. int i = 0;
    4. for(String name : names) {
    5.    System.out.println((++i) + ".\t" + name);
    6. }
    ...

    Aktualisiert: 28.10.2015 um 15:17 von Landei

    Stichworte: iterator, java
    Kategorien
    Kategorielos
  6. Checked Exceptions weiter werfen ohne Wrappen oder throws-Klausel

    Oft ruft man Code auf, der checked Exceptions schmeißen kann. In einigen Situationen kann in so einem Fall das Programm nicht weiterlaufen und soll beendet werden. Ein gängiges Verfahren dafür ist, die checked Exception in eine RuntimeException (oder Unterklasse wie IllegalStateException) zu wrappen und dann weiter zu werfen. Damit erspart man sich die throws-Klausel in der Methodensignatur. Beispiel:
    Java Code:
    1. public Stream<String> linesFromPath(Path path) {
    2.   try {
    3.     return
    ...
    Stichworte: checked exception
    Kategorien
    Kategorielos
  7. Java-Kontrollstukturen nachgebaut - if

    Wieder so ein seltsamer Beitrag: Wozu sollte man Kontrollstrukturen nachbauen? Nun, selbst als reine Fingerübung lernt man einiges über die Möglichkeiten - und Unmöglichkeiten - der Sprache, aber die eigentliche Idee ist, einen soliden Ausgangspunkt für eigene Erweiterungen zu schaffen.

    Beginnen wir mit einer der einfachsten Kontrollstrukturen, nämlich if - else, und dem verwandten ternären Operator x ? y : z. Das klassische if ist leicht zu modellieren - die einzige Schwierigkeit ...

    Aktualisiert: 15.10.2015 um 17:09 von Landei

    Kategorien
    Kategorielos
  8. SQLite: Datetime als lokalen Wert zurückgeben

    Zitat Zitat von spellsleeper Beitrag anzeigen
    Lösung:
    Ich habe die Zeit als UTC gespeichert und hätte die lokale Zeit für eine Berechnung im Statement benötigt, meine Lösung ist, dass ich dem Statement die Differenz zwischen Datenbank(UTC)- und Client-Zeit übergebe. Damit kann ich die Berechnung verwirklichen.
    Kategorien
    Kategorielos
  9. Zweimal ist einmal zuviel

    In diesem Post möchte ich einmal ein Designprinzip beleuchten, das dem bekannten "don't repeat yourself" ähnelt, aber damit nicht identlisch ist. Ich würde es "don't say it twice" nennen (auch wenn das kein hübsches Akronym bildet). Es geht darum, das Ding, an dem man gerade werkelt, nicht öfter zu nennen als unbedingt nötig. Der Grund ist simpel: Man muss solche Referenzen immer synchron halten, wodurch sie anfällig für Copy-Paste-Fehler sind, nämlich wenn man nach ...

    Aktualisiert: 28.07.2015 um 21:15 von Landei

    Kategorien
    Kategorielos
  10. Kleiner Optional-Trick in Java

    So froh ich über die Einführung von Optional in Java 8 bin, so ärgerlich ist dort das Fehlen von Methoden, die eigentlich selbstverständlich sein sollten. So renne ich öfter in die Situation, dass ich aus dem Optional keinen Wert zurückliefern möchte, sondern abschließend eine Aktion ausführen. Dafür gibt es die Methode ifPresent, die einen Consumer entgegennimmt. Das Problem ist, dass ich im Falle eines leeren Optionals keine Default-Aktion angeben kann.

    Zur Veranschaulichung ein ...
    Kategorien
    Kategorielos
  11. Rechtesystem

    Zitat Zitat von Falk Beitrag anzeigen
    Eine Erlaubnis oder Permission gibt es meiner Meinung nach nicht per se. Sie entsteht, wenn Eine Person auf eine Aktion mappt*. Und eine Aktion mündet in der Anzeige eines bestimmten Elements (zB ein Edit-Button oder ein Eintrag in einer Liste zum Ansehen) Wobei das Mappen von einer Person auf eine Aktion immer über das Mapping Person - Rollen und das Mapping Rolle - Aktion geht.

    Den zweiten Spezialfall dachte ich für das Anzeigen von besonderen Buttons wie 'Nachträgliche Edition'
    ...
    Kategorien
    Kategorielos
  12. Google Fonts mit JavaFX

    Da bin ich neulich doch glatt über ein nettes Feature in JavaFX gestoßen, was ich Euch nicht vorenthalten möchte: Wie man Google-Fonts in seinen Programmen nutzen kann.
    Zuallererst sucht man sich natürlich einen schicken Font aus. Ist man fündig geworden, dann klickt man unterhalb der Vorschau auf den "Pfeil-rechts"-Button (Quick-use). Auf der daraufhin sich öffnenden Seite findet man unter Punkt 3 den Code, den man benötigt, also z.B.:
    XML Code:
    1. <link href='http://fonts.googleapis.com/css?family=Fjalla+One'
    ...
    Kategorien
    Kategorielos
  13. 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
  14. Das Monoid, dein Freund und Helfer

    Was zur Hölle ist ein Monoid? Nun, eigentlich eine binäre Operation samt eines neutralen Elements.In Java 8 schreiben wir es deshalb am besten als Unter-Interface von BinaryOperator, der wiederum eine Spezialisierung von BiFunction ist:

    Java Code:
    1.  
    2. public interface Monoid<A> extends BinaryOperator<A> {
    3.  
    4.    @Override
    5.    A apply(A a1, A a2);
    6.  
    7.    A identity();
    8.  
    9.    ... //wird unten fortgesetzt
    10. }

    Das ...
    Kategorien
    Kategorielos
  15. Seit Java 8u40: Spinner in JavaFX

    Die Dinge werden ja immer pompös angekündigt und als großartige Neuigkeiten verkauft, tiefer gehende Informationen findet man aber eher seltener. Deshalb stelle ich hier kurz mal diese neue Klasse und deren wichtigste Funktionen vor.
    Wie es der Name schon vermuten lässt, handelt es sich hierbei um einen sogenannten "Spinner", also ein Kontrollfeld, bei dem man mittels Hoch- und Runter-Buttons Werte eingeben bzw. ändern kann. In Swing heißt das entsprechende Teil - ihr werdet ...
    Kategorien
    Kategorielos
Seite 1 von 5 1 2 3 4 ... LetzteLetzte