Java ist doof

Im rahmen meines Praktikums programmiere ich so einiges in Java, grade ebend habe ich geschafft, mit java.lang.reflect private Felder einer Klasse zu lesen und zu schreiben.

Da fragt man sich doch echt wozu es private Felder gibt…

lesen:

Field field = instance.getClass().getDeclaredField("feldname");
field.setAccessible(true);
Object object = field.get(instance);

schreiben:

Field field = instance.getClass().getDeclaredField("feldname");
field.setAccessible(true);
field.set(instance, newValue);

Außerdem kann ich Java sowieso nicht leiden! und jetzt noch viel weniger.

Keine Friends, keine Mehrfachvererbung, keine Privatsphäre…

2 Responses to “Java ist doof”

  1. Papa Says:

    Das mit der Privatheit ist nur zur Unterstützung und nicht absolut gemeint. Übersetzte mal ein C++ mit

    #define private public

    Reflection ist aber auch gedacht für Debugger oder für den Remote Procedure Call Mechanismus. Manchmal muss man halt an die internen Dinge ‘ran kommen.

    Friends benötigt man sehr selten: evtl gibt es ein anderes Design Pattern dafür.

    Mehrfachvererbung kann man oft mit Interfaces auflösen.

    Am besten du machts das Beste aus dem Werkzeug (Programmiersprache) und lässt dir den Spaß nicht verderben.

  2. dStulle Says:

    Für #define private public müsste man zumindestens den Quellcode haben und neu übersetzen.

    Mit interfaces kann man aber keine Funktionen implementieren.

Leave a Reply

You must be logged in to post a comment.


Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien: