Typsichere Reflections in Java mit Manifold

Nach einigen bereits veröffentlichen Artikeln in der Serie zu Manifold soll es in diesem Teil darum gehen, wie man die eigenen Reflections in Java mit Manifold typsicher machen kann. Zuvor hatten wir bereits beschrieben, wie man recht einfach JSON-Schnittstellen im Programmcode verwenden kann, wie man fremde Klassen um Methoden erweitern kann und wie man eine beliebige Klasse von einem eigenen Interface erben lassen kann, sofern sie denn die entsprechenden Methoden mitbringt.

Continue reading
Posted in Java and Quality | Tagged , , , | Leave a comment

Vererbung in Java austricksen mit Manifold: Structural Interfaces

Zuvor hatten wir bereits über Manifold berichtet. Dabei ging es in einem kurzen Artikel um die Grundlagen von Manifold. Anschließend hatten wir gezeigt, wie sich mit relativ wenig Aufwand JSON-Schnittstellen über Manifold integrieren lassen. Außerdem ging es darum, wie man fremde Klassen erweitern kann. Heute zeigen wir, wie man mit Manifold fremde Klassen nachträglich von einem neuen Interface erben lassen kann, sofern sie die passenden Methoden haben. Dieses Konzept wird auch Structural Interface genannt.

Continue reading
Posted in Java and Quality | Tagged , , , | Leave a comment

Fremde Java-Klassen erweitern mit Manifold: Extensions

In den letzten Artikeln hatten wir bereits über die mannigfaltigen Möglichkeiten Manifolds geschrieben. Neben einem kurzen Artikel zu den Grundlagen von Manifold hatten wir gezeigt, mit wie wenig Aufwand sich JSON-Schnittstellen über Manifold integrieren ließen. Ein anderes interessantes Feature von Manifold ist das Erweitern fremder Klassen mit eigenen Methoden und wird in diesem Artikel beschrieben.

Continue reading
Posted in Java and Quality | Tagged , , | Leave a comment

Einfache JSON Integration in Java ohne JAXB mit Manifold

Im letzten Artikel hatten wir bereits eine Übersicht über die wichtigsten Funktionen von Manifold geliefert. In diesem Artikel der Serie soll es nun um die Möglichkeiten für die Integration von JSON-Objekten und JSON-Schemata direkt in den Java-Code gehen.

Continue reading
Posted in Java and Quality | Tagged , , , | Leave a comment

Manifold – Unsichtbare Code-Generierung für die Praxis

Code-Generierung ist bei einigen Entwicklern allgemein eher unbeliebt, da sie zwar meist notwendig ist, in der Praxis jedoch häufig einige Probleme mit sich bringt. Daher wird dieses Mittel im Entwickleralltag häufig nur in den Bereichen eingesetzt, in denen es absolut notwendig oder längst selbstverständlich ist. Etwa bei der Generierung von hashCode()-/equals()-Methoden in Java oder Getter und Setter in Domainobjekten.

An dieser Stelle setzt Manifold an. Denn automatische Code-Generierung, insbesondere wenn sie unsichtbar für die Entwickler im Hintergrund abläuft, kann einige Vorteile haben. So können etwa fehlende Sprachfeatures nachgerüstet werden und unnötige Fleißarbeit auf ein Minimum reduziert werden. Da Manifold jedoch über ein Compiler-Plugin arbeitet, erkauft man sich die oben genannten Vorteile durch einen gewissen Lock-In. Ein direkter Ausbau durch eine Realisierung der “unsichtbaren Klassen” im Hintergrund zu echten Java-Klassen, wie etwa bei TypeScript, wäre vielleicht für einige Features von Manifold möglich, allerdings nur in der Theorie.

Da Manifold ein recht mächtiges und umfangreiches Framework ist, wird es dazu eine ganze Serie an Blogartikeln geben.

Continue reading
Posted in Java and Quality | Tagged , , | Leave a comment

Die Zukunft von GWT: J2CL

Ursprünglich wurde das Google Web Toolkit entwickelt, um in einem nur sehr begrenzt existierenden JavaScript-Ökosystem mit sich teils stark unterscheidenden JavaScript-Implementierungen einheitlich und sicher Anwendungen entwickeln zu können.

Seit damals haben sich einige Probleme am GWT-Konzept offenbart. Da GWT einen großen Funktionsumfang hat und sich somit unter anderen um Compiler, CSS und die Widget-API kümmert, hat das Framework sehr lange Release-Zyklen.

Wenn nun Browserhersteller einige Teile ihrer Implementierung ändern oder Fehler beheben, wie z. B. hier, ist man leider aufgrund der langen Release-Zyklen dazu gezwungen, selbst einen Workaround einzubauen.

Continue reading
Posted in Java Web Frameworks | Tagged , | Leave a comment

Switch Expressions in Java 12

Java 12 bringt einige interessante neue Features, darunter auch umfassende Erweiterungen für die Kontrollstruktur switch. Spezifisch befassen wir uns im Folgenden mit bisherigen Problemen und wie diese unter anderem durch die neue Switch-Expression in Java 12 gelöst werden.

Continue reading
Posted in Java Basics | Tagged , | Leave a comment