Eure Wunschliste für Java 7?

Status
Nicht offen für weitere Antworten.

jollyroger

Bekanntes Mitglied
Moin,

ich hab kein derartiges Thema hier im Forum gefunden, deshalb meine Frage:

Was wünscht ihr euch für java 7?

Wenn ich mir die bisherigen JSRs anschaue:

-> http://www.tutego.com/java/jdk7-Java-SE-7.htm

ist da leider nichts von dem drin was ich gerne hätte....:-/

Meine Wunschliste:

- Ein modifier der „private protected“ ausdrückt
- switch case mit Strings (ohne Umweg über enums)
- Operator overloading (aber nur für ein definiertes Set, nicht für alle!)
- Umbenennung unsinnig benannter exceptions (NullPointerException, RuntimeException [alle exceptions sind zur runtime!])
- continuations
 

jollyroger

Bekanntes Mitglied
Moin,

ich hab kein derartiges Thema hier im Forum gefunden, deshalb meine Frage:

Was wünscht ihr euch für java 7?

Wenn ich mir die bisherigen JSRs anschaue:

-> http://www.tutego.com/java/jdk7-Java-SE-7.htm

ist da leider nichts von dem drin was ich gerne hätte....:-/

Meine Wunschliste:

- Ein modifier der „private protected“ ausdrückt
- switch case mit Strings (ohne Umweg über enums)
- Operator overloading (aber nur für ein definiertes Set, nicht für alle!)
- continuations
- Umbenennung unsinnig benannter exceptions (NullPointerException, RuntimeException [alle exceptions sind zur runtime!])
- Umbenennung aller javax.*-Pakete zu java.*

Mir ist klar, das die letzten beiden Punkte jede Rückwärtskompatibilität brechen würde, aber mein Gott, irgendwann muss man halt mal alte Zöpfe abschneiden.....

EDIT: Sorry, hab aus Versehen auf "neue Antwort" statt auf "editieren" geklickt....
 

Saxony

Top Contributor
Hallo,

ich hätte gerne, dass Java sofort weiß was ich proggen möchte!
Also ich schreib zum Beispiel public boolean machIrgendwas und Java macht gleich den Rest der Methode dazu - das wäre fein :D

Aber um beim Thema zu bleiben:

Ich hätte gerne, wie in einem vorigen Thread festgestellt so etwas:

if ch in['a'..'z'] { sysout("Gott sei dank geht das endlich"); }

bye euer Saxony
 
M

maki

Gast
- Ein modifier der „private protected“ ausdrückt
Was soll denn "private protected" sein?

- switch case mit Strings (ohne Umweg über enums)
Brauch ich nicht :)

- Operator overloading (aber nur für ein definiertes Set, nicht für alle!)

Bin ausdrücklich gegen Oprator Überladungen.

Was ist das?

- Umbenennung unsinnig benannter exceptions (NullPointerException, RuntimeException [alle exceptions sind zur runtime!])
Was soll an "NullPointerException" schlecht sein?
Runtime heisst übrigens etwas anderes in diesem Context, nämlich VM.

- Umbenennung aller javax.*-Pakete zu java.*
Wozu soll das gut sein?
Die Standard API ist doch sowieso schon überladen.
 

jollyroger

Bekanntes Mitglied
Zitat:
- Ein modifier der „private protected“ ausdrückt

Was soll denn "private protected" sein?

Hat es dich noch nie gestört, das mit protected versehene fields auch package-weit sichtbar sind? Genau das ist damit gemeint.....

- switch case mit Strings (ohne Umweg über enums)

Brauch ich nicht icon_smile.gif

Fein, deswegen steht es ja auch in meiner Wunschliste. Mit enums find ichs halt extrem unschön.

- Operator overloading (aber nur für ein definiertes Set, nicht für alle!)


Bin ausdrücklich gegen Oprator Überladungen.

Ich nicht..... :wink:

- continuations

Was ist das?

Kuck dir mal Rife an: http://rifers.org/wiki/display/RIFE/Web+continuations

What are continuations?

These constructs are inspired from Scheme and basically contain all information about a specific program location and the local method variables. Using this information, the application is able to create an interruption in program execution (this is RIFE-specific) continue later at the exact same location as if nothing happened.

A simple presentation that explains continuations clearly can be downloaded from here.

If wonder about how to debug continuations, look at this presentation.

Zitat:

- Umbenennung unsinnig benannter exceptions (NullPointerException, RuntimeException [alle exceptions sind zur runtime!])

Was soll an "NullPointerException" schlecht sein?
Runtime heisst übrigens etwas anderes in diesem Context, nämlich VM.

NullReferenceException wäre wohl treffender, es sei denn du hast einen Weg gefunden Pointer in Java zu verwenden...

- Umbenennung aller javax.*-Pakete zu java.*

Wozu soll das gut sein?
Die Standard API ist doch sowieso schon überladen.

javax.* ist doch nur noch aus historischen Gründen mit dem "x"....

Edit: Gerade noch folgendes bei "diskutierten Änderungen" gesehen:

Im switch nicht nur int, sondern auch Strings
 

Wildcard

Top Contributor
Ein switch ist ja nicht einfach eine andere Schreibweise für eine Menge von ifs, sondern wird in eine sehr schnelle Sprungtabelle umgesetzt. Das funktioniert nur mit primitiven Datentypen.

Operatorüberladung ist pfui.

Das einzige was ich mir spontan einfallen würde ist ein Base64 Encoder/Decoder und ein paar mehr Swing Widgets.
 

AlArenal

Top Contributor
Eine Referenz ist ein Pointer auf eine Instanz. Der Begriff der Referenz hat sich in Java aber durchgesetzt, damit nicht jeder Hoshi krampfhaft versucht Zeigerarithmetik ans Laufen zu bekommen, weil er bei "Pointer" direkt an C denkt.
 

Niki

Top Contributor
Code:
Hat es dich noch nie gestört, das mit protected versehene fields auch package-weit sichtbar sind? Genau das ist damit gemeint.....

Meine Attribute sind IMMER private und nur über Methoden änderbar. So solls auch sein.
 
M

maki

Gast
Hat es dich noch nie gestört, das mit protected versehene fields auch package-weit sichtbar sind? Genau das ist damit gemeint.....
Absolut nicht, wenn ich das nicht möchte, mache ich sie nicht protected, sollten meistens sowieso privat sein, protected nur mit Grund, nicht einfach so... siehe Post von Niki.

Fein, deswegen steht es ja auch in meiner Wunschliste. Mit enums find ichs halt extrem unschön.
Wie Wildcard bereits sagte, kann das in der jetzigen Form (seit C schon) nur sinnvoll mit primitiven Zahlen umgesetzt werden.

Ich nicht..... icon_wink.gif
Müssen ja nicht alles gleich sehen, das abschaffen der Op. Überladungen sehe ich als echten Vorteil in java.

Naja, wenn wir schon dabei sind Wünsche zu äussern, wäre mein Wunsch das entgültige abschaffen von altlasten wie Vector etc, ist längst überfällig imho.
 
S

SlaterB

Gast
Niki hat gesagt.:
Meine Attribute sind IMMER private und nur über Methoden änderbar. So solls auch sein.

für Methoden gilt aber das gleiche Spiel:
Methoden nur für die Subklassen sind auch im ganzen Package sichtbar,

stört mich auch in seltenen Fällen,
wahrscheinlich ein Hinweis, die Klassen besser aufzutrennen in noch mehr packages ;)
 

tfa

Top Contributor
jollyroger hat gesagt.:
-> http://www.tutego.com/java/jdk7-Java-SE-7.htm

ist da leider nichts von dem drin was ich gerne hätte....:-/
Eine vollständigere Liste findest du hier: java.dzone.com/news/java-7-predictions
Switch mit Strings steht da z.B. auch drin, obwohl Enums völlig ausreichend sind.
- Umbenennung unsinnig benannter exceptions (NullPointerException, RuntimeException [alle exceptions sind zur runtime!])
- Umbenennung aller javax.*-Pakete zu java.*

Mir ist klar, das die letzten beiden Punkte jede Rückwärtskompatibilität brechen würde, aber mein Gott, irgendwann muss man halt mal alte Zöpfe abschneiden.....
Das wird nie passieren. Dann kannst du alles wegwerfen und von vorne anfangen - oder Java 7 ignorieren.
Die trauen sich ja nicht mal, Vector, Stack, Hashtable usw. deprecated zu machen.

Ansonsten finde ich Closures und ARM-Blöcke noch interessant, obwohl erstere wahrscheinlich ziemlich viel Komplexität mitbringen werden.
 

Saxony

Top Contributor
SlaterB hat gesagt.:
wahrscheinlich ein Hinweis, die Klassen besser aufzutrennen in noch mehr packages ;)

Hmm, oder andersrum nur noch: import java.*;

Lustig ist ja das hier:
XML Support No - 0% Not a chance :D

bye Saxony
 

jollyroger

Bekanntes Mitglied
Ein switch ist ja nicht einfach eine andere Schreibweise für eine Menge von ifs, sondern wird in eine sehr schnelle Sprungtabelle umgesetzt. Das funktioniert nur mit primitiven Datentypen.

Das ist mir klar, es geht einfach um eine bessere Lesbarkeit == bessere Wartbarkeit.

Eine Referenz ist ein Pointer auf eine Instanz. Der Begriff der Referenz hat sich in Java aber durchgesetzt, damit nicht jeder Hoshi krampfhaft versucht Zeigerarithmetik ans Laufen zu bekommen, weil er bei "Pointer" direkt an C denkt.

Aber genau nach dem Argument ist eine "NullPointerException" eben irreführend....

Meine Attribute sind IMMER private und nur über Methoden änderbar. So solls auch sein.

Es gibt aber Fälle, wo das zu äußerst unschönen Konstruktionen führt, und genau für diese hätte ich gerne erwähntes Feature....

Müssen ja nicht alles gleich sehen, das abschaffen der Op. Überladungen sehe ich als echten Vorteil in java.

Ich "eigentlich" auch, aber für bestimmtes Set (z.B. +,-,*,/) fände ich es vorteilhaft, weil lesbarer als endlose Methodenverknüpfungen....

Naja, wenn wir schon dabei sind Wünsche zu äussern, wäre mein Wunsch das entgültige abschaffen von altlasten wie Vector etc, ist längst überfällig imho.

Ich sekundiere.... :wink:
 

byte

Top Contributor
Ich wünsche mir eine Überarbeitung der Swing zugrunde liegenden Konzepte, Daten an Komponenten zu binden (TableModel, TreeModel, ...). Diese ganzen Konzepte, die größtenteils aus Java 1.2 Zeiten stammen, sind einfach nicht mehr state of the art. Wie es richtig geht, zeigen ja andere Libs (siehe JFace von SWT). Einiges wurde durch SwingX schon verbessert, aber das geht noch besser.
In diesem Zusammenhang könnte man auch direkt die Palette an Komponenten erweitern.

Ich habe gelesen, dass ein paar Sachen aus SwingX übernommen werden in Java 7 (ich meine, es waren Filter). Aber das ist nur ein Tropfen auf den heissen Stein. Da muss dringend mehr passieren, sonst wird Swing im Desktopbereich nie den Anschluß finden. Das Swing Application Framework geht auf jeden Fall schonmal in die richtige Richtung.
 

AlArenal

Top Contributor
jollyroger hat gesagt.:
Eine Referenz ist ein Pointer auf eine Instanz. Der Begriff der Referenz hat sich in Java aber durchgesetzt, damit nicht jeder Hoshi krampfhaft versucht Zeigerarithmetik ans Laufen zu bekommen, weil er bei "Pointer" direkt an C denkt.

Aber genau nach dem Argument ist eine "NullPointerException" eben irreführend....

Für wen? Für Leute, die nicht wissen, was sie tun?

Dann will ich aber auch, dass Zeilennummern eingeführt werden... :p
 
G

Guest

Gast
Saxony hat gesagt.:
if ch in['a'..'z'] { sysout("Gott sei dank geht das endlich"); }
Code:
if (Character.isLowerCase(ch))
	System.out.println("Das ging schon immer");
 

Saxony

Top Contributor
Aha und wenn ich:

if ch in['d'..'q'] machen will ?
Oder auch if i in [4..8].

Ums kurz zu machen, ich will, dass man einen aktuellen Wert derart mit einer Menge vergleichen kann, dass gilt:

var element der Menge -> ja oder nein

Ohne irgendwelchen gestelzten Konstrukte über Character Klasse oder mit zig bool'schen Ausdrücken!

und um die Sache noch zu übertreiben:

if d in[3.45435..4.35445] { sysout("aha mit floating point is auch nicht schlecht"); }

Und um auch dem anderen Vorredner(maki) den Wind aus den Segeln zu nehmen:

if ch in['a','d','g','k','m','t','1'..'4', '6'..'8','u','w'..'z'] { sysout("das if dazu will ich sehen - hehe") }

bye Saxony
 
S

SlaterB

Gast
if (Helper.in(ch,'a','d','g','k','m','t','u','x','y','z')) {
sysout("nix einfacher als das")
}

oder sogar noch schöner
if (Helper.in(ch,"adgkmtuxyz")) {
sysout("nix einfacher als das")
}

was uns wieder zu gewissen String-Operationen bringt ;)
 

Saxony

Top Contributor
Na sag ma red ich hier im Kreis oder wie?

ICH WILL, dass so etwas nativ von der Sprache unterstützt wird! Nicht über Character, mit Hilfe von zig bool'schen Ausdrücken oder wie jetzt sogar noch vorgeschlagen wird über static Methoden einer superduper Helper Klasse mit variabler Argumentenzahl!

Hier war nach Wünschen gefragt und so wünsche ich mir das. <- Punkt

bye Saxony
 
M

maki

Gast
Und um auch dem anderen Vorredner(maki) den Wind aus den Segeln zu nehmen:

if ch in['a','d','g','k','m','t','1'..'4', '6'..'8','u','w'..'z'] { sysout("das if dazu will ich sehen - hehe") }
Maki segelt mit dem Wind im Rücken davon und ruft noch "regex" beim überholen :D
 

Saxony

Top Contributor
maki hat gesagt.:
Maki segelt mit dem Wind im Rücken davon und ruft noch "regex" beim überholen :D

siehe mein letztes Post! auch regex will ich da nicht haben! :p
Kanns ja meinetwegen intern so umstricken, aber ich will in meinem Source if ch in[wasauchimmer] stehen haben!

Seid lieber froh, dass ich von der PASCAL-Schiene her komme und nicht mit Basic laufen gelernt habe! :D

bye Saxony
 

Oni

Top Contributor
maki hat gesagt.:
Und um auch dem anderen Vorredner(maki) den Wind aus den Segeln zu nehmen:

if ch in['a','d','g','k','m','t','1'..'4', '6'..'8','u','w'..'z'] { sysout("das if dazu will ich sehen - hehe") }
Maki segelt mit dem Wind im Rücken davon und ruft noch "regex" beim überholen :D

:D :D :toll:


Was habt ihr eigentlich gegen die Klassen Vector & Hashtable? ArrayList und HashMap sind ja nicht synchronisiert also nicht unbedingt ein ersatz dafür.
 
S

SlaterB

Gast
Saxony hat gesagt.:
Hier war nach Wünschen gefragt und so wünsche ich mir das. <- Punkt
nana,
gefragt war doch wohl
> das if dazu will ich sehen
oder nicht? dann darf man das auch mal posten ;)
 
M

maki

Gast
Was habt ihr eigentlich gegen die Klassen Vector & Hashtable? ArrayList und HashMap sind ja nicht synchronisiert also nicht unbedingt ein ersatz dafür.
Beide, Hashtable und Vector sind überreif für den Schrott (deprecation), weil sie nicht nur das Map bzw. List interface implmentieren, sondern auch noch überbleibsel aus der pre-Collections Ära.

Wenn ich Map/List synchronisiert brauche nehme ich http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collections.html#synchronizedList(java.util.List)

Vector/Hashmap bieten nix sinnvolles was das Collections-Framework nicht auch bietet...

@ Saxony:
nun ja, wenn dass dein Wunsch ist, muss man das wohl respektieren.
 

Saxony

Top Contributor
maki hat gesagt.:
@ Saxony:
nun ja, wenn dass dein Wunsch ist, muss man das wohl respektieren.

Nu! *liebgugg*

Übrigens ist mir gerade aufgefallen, dass meine Signatur Flagge falsch ist! Der letzte Sektor muss 255,204,0 haben und nicht 255,255,0! Nuja Sachen gibts - hehe ;)

bye Saxony
 

Marco13

Top Contributor
Ein Wunsch: Generics in Swing! TreeNode<UserObjectType> und so.... Dürfte aber für Java7 (und vermutlich noch bis Java 10 oder so....) zu aufwändig sein.
 

ARadauer

Top Contributor
im J2ee bereich könnte das ganze deployment thema vereinfacht werden. wir haben hier eine eigene abteilung die für diese themen zuständig ist. in php lad ich die files rauf - fertig. bei fetten j2ee anwendungen muss ich in zig xml files wirre konfigs vornehmen.

ein paar einfache dinge in swing könnten verbessert werden, binding usw...
 

ARadauer

Top Contributor
Naja, wenn wir schon dabei sind Wünsche zu äussern, wäre mein Wunsch das entgültige abschaffen von altlasten wie Vector etc, ist längst überfällig imho.
das wirds nie spielen, thema abwärtskompatibilität, was es gegeben hat bleibt. es gibt anscheinden api klassen mit mehr depricated methoden als andere....
 
M

maki

Gast
im J2ee bereich könnte das ganze deployment thema vereinfacht werden. wir haben hier eine eigene abteilung die für diese themen zuständig ist. in php lad ich die files rauf - fertig. bei fetten j2ee anwendungen muss ich in zig xml files wirre konfigs vornehmen.
In JEE (5) ist es etwas besser geworden, ansonsten empfiehlt sich ein gutes Build Tool, zB. Maven 2.
 

byte

Top Contributor
ARadauer hat gesagt.:
im J2ee bereich könnte das ganze deployment thema vereinfacht werden. wir haben hier eine eigene abteilung die für diese themen zuständig ist. in php lad ich die files rauf - fertig. bei fetten j2ee anwendungen muss ich in zig xml files wirre konfigs vornehmen.

Was setzt Ihr denn so ein? EJB <3 ? ;)

JEE ist halt nun mal etwas mehr als PHP. :roll: Und wie wirr die Konfiguration am Ende ist, hängt von der eingesetzten Technologie ab. Wenn Du z.B. ein DispatcherServlet in die web.xml hängst (z.B. mit Spring), dann stehen nur ne handvoll Zeilen in der web.xml.

Aber das geht jetzt eher in die Richtung einer JEE 6 Wunschliste. ;) Ich freue mich auf jeden Fall auf die JEE 6 Profiles. Das dürfte einiges bewegen.
 

jollyroger

Bekanntes Mitglied
im J2ee bereich könnte das ganze deployment thema vereinfacht werden. wir haben hier eine eigene abteilung die für diese themen zuständig ist.

Naja,

aber genau diese Problematik wurde ja durch Annotations entschärft.....

Man vergleiche nur mal das xml-Pendant zu z.B. @RolesAllowed("foo")....ich finde, das ist schon erheblich einfacher geworden.
 

Janus

Bekanntes Mitglied
ein package hierarchy down scope wäre nicht schlecht. also ein sichtbereich, der sub-packages zugriff auf die klase erlaubt, aber packages oberhalb oder neben dem definierten nicht.

com.foo.SomeClass
com.foo.bar.SomeOther darf auf SomeClass zugreifen
com.baz.OutClass aber nicht

sowas lässt sich derzeit nur mit irgendwelchen build tools hinbekommen.

type erasure für arrays wäre auch ne feine sache.

was ich weiterhin *niemals* in java sehen möchte:
- operator-überladung
- templates
 

Wildcard

Top Contributor
Janus hat gesagt.:
ein package hierarchy down scope wäre nicht schlecht. also ein sichtbereich, der sub-packages zugriff auf die klase erlaubt, aber packages oberhalb oder neben dem definierten nicht.
Es gibt keine sub packages, es gibt nur packages :wink:
 

thE_29

Top Contributor
@Janus: Dir ist schon klar das generisches Verhalten ein ähnliches Konzept zu Templates ist?

Und ich würde mich über Operatorenüberladungen sehr freuen ;)
 

tfa

Top Contributor
Generics und Templates sehen zwar ähnlich aus und haben ähnliche Zwecke, konzeptionell sind sie aber sehr unterschiedlich.
 

foobar

Top Contributor
Meine Wunschliste für Java 7:

- Closures
- Überarbeitung der Exceptionhierarchie z.b. SqlExceptions von RuntimeException ableiten
- Operatorüberladung für BigDecimal
- Eine Möglichkeit Groovy oder andere Scriptsprache inline auszuführen so wie man das mit Assembler in C macht
- Reimplementierung der Enumklasse. Enums sind super, aber sobald man mehr als einen int-Value benötigt wirds lästig. Man kann sich keine abstrakte Oberklasse für Enums machen.
- Alle Widgets von SwingX in Swing integrieren
- Superpackages um Schluss mit der Jarhölle zu machen siehe Osgi
- Regexintegration wie in Scriptsprachen

Ausserdem wünsche ich mir, daß alle Betriebssysteme standardmäßig mit dem neuesten JRE ausgeliefert werden und sich automatisch updaten.
 

byte

Top Contributor
foobar hat gesagt.:
- Reimplementierung der Enumklasse. Enums sind super, aber sobald man mehr als einen int-Value benötigt wirds lästig. Man kann sich keine abstrakte Oberklasse für Enums machen.
Vermisse ich nicht wirklich, zumal Du notfalls mit Interfaces und Komposition das gleiche erreichst.
 
S

SlaterB

Gast
eine leichte kleine Enum ist eh immer zu begrüßen,
im Zweifel Map<Enum,dickes Objekt>
die Map ist dann ein statisches Singleton :bae:
 

diggaa1984

Top Contributor
mal ne dumme frage:

les hier das erste ma was von closures ... und dachte mir ich google mal.
gut getan, gefunden. Es gibt ja da bereits tutorials diesbezüglich in Java, was genau wünscht ihr euch da quasi noch? ^^

Hab nu nich ewig viele blogs gelesen die da irgendwas bezüglich closures diskutieren, aber für mich siehts grad mal so aus, dass sie ja schon umsetzbar sind.
 
B

Beni

Gast
foobar hat gesagt.:
- Reimplementierung der Enumklasse. Enums sind super, aber sobald man mehr als einen int-Value benötigt wirds lästig. Man kann sich keine abstrakte Oberklasse für Enums machen.
Hä? Was? Gib dem Enum eine Referenz auf dein Objekt und gut ist :wink:

Achja, Superpackages wären toll. Ansonsten hoffe ich, dass nicht zuviel reinkommt - einen C++ *kann alles niemand versteht es* - Klon brauche ich nicht :wink:
 

foobar

Top Contributor
Vielleicht habe ich mich etwas unklar ausgedrückt. Ich habe viele enums die ungefähr so aussehen:

Code:
public enum Gebuehrart implements SearchableEnum
    {
        Prozent(0, Messages.getString("ChargeBean.lblProzent")), //$NON-NLS-1$
        Betrag(1, Messages.getString("ChargeBean.lblBetrag")), //$NON-NLS-1$
        Brutto(1, Messages.getString("ChargeBean.lblBrutto")), //$NON-NLS-1$
        Netto(2, Messages.getString("ChargeBean.lblNetto")), //$NON-NLS-1$
        Staffel(3, Messages.getString("ChargeBean.lblStaffel")); //$NON-NLS-1$

        private int    value;
        private String description;

        Gebuehrart(int value, String description)
        {
            this.value = value;
            this.description = description;
        }

        public int getValue()
        {
            return value;
        }

        public String getDescription()
        {
            return description;
        }

        public static String[] getAsArray()
        {
            String[] out = new String[values().length];
            for (int i = 0; i < values().length; i++)
            {
                out[i] = values()[i].getDescription();
            }
            return out;
        }

        public static Gebuehrart getGebuehrartByID(int id)
        {
            for (Gebuehrart m : values())
            {
                if (m.getValue() == id)
                {
                    return m;
                }
            }
            return null;
        }

        @Override
        public String toString()
        {
            return description;
        }
    }

Jetzt hätte ich gerne eine Enumoberklasse, die mir schon einen Kostruktor mit int, String bereit stellt und die getMyTypeById-Methode. Im Moment lässt sich das mit den JDK enums aber nicht lösen. Die einzige Möglichkeit wäre wieder auf das Typesafenum-Pattern zurückzugreifen.
Im Apache commons Projekt gibts auch eine enum-Klasse, von der man erben kann aber ich fände es viel schöner, wenn das mit den JDK enums funzen würde.
 

tfa

Top Contributor
diggaa1984 hat gesagt.:
Hab nu nich ewig viele blogs gelesen die da irgendwas bezüglich closures diskutieren, aber für mich siehts grad mal so aus, dass sie ja schon umsetzbar sind.
Es gibt verschiedene Entwürfe zu Closure in Java, von einfach bis kompliziert. Wahrscheinlich hast du Diskussionen über diese Entwürfe gelesen.
 

byte

Top Contributor
foobar hat gesagt.:
---SNIP---

Jetzt hätte ich gerne eine Enumoberklasse, die mir schon einen Kostruktor mit int, String bereit stellt und die getMyTypeById-Methode. Im Moment lässt sich das mit den JDK enums aber nicht lösen. Die einzige Möglichkeit wäre wieder auf das Typesafenum-Pattern zurückzugreifen.
Im Apache commons Projekt gibts auch eine enum-Klasse, von der man erben kann aber ich fände es viel schöner, wenn das mit den JDK enums funzen würde.

Würde ich einfach so machen:

Code:
public enum Gebuehrart implements SearchableEnum {
   PROZENT(0, "Prozent"), 
   BETRAG(1, "Betrag"), 
   BRUTTO(1, "Brutto"), 
   NETTO(2, "Netto"), 
   STAFFEL(3, "Staffel");

   private int value;
   private String description;

   Gebuehrart(int value, String description) {
      this.value = value;
      this.description = description;
   }

   public String getDescription() {
      return description;
   }

   public int getValue() {
      return value;
   }

   @Override
   public String toString() {
      return description;
   }
}

Code:
public interface SearchableEnum {
   public int getValue();
   public String getDescription();
}

Code:
public class Util {
   public static <T extends SearchableEnum> String[] toArray(Class<T> enumType) {
      T[] values = enumType.getEnumConstants();
      String[] out = new String[values.length];
      for (int i = 0; i < values.length; i++) {
         out[i] = values[i].getDescription();
      }
      return out;
   }

   public static <T extends SearchableEnum> T getByID(Class<T> enumType, int id) {
      for (T t : enumType.getEnumConstants()) {
         if (t.getValue() == id) {
            return t;
         }
      }
      return null;
   }
}
 

diggaa1984

Top Contributor
aso ok, da stand was von tutorials als überschrift, aber vermutlich doch nur als "so könntes ma aussehen" .. sehr verwirrend ^^
 

ARadauer

Top Contributor
gibt da viele diskussionen bezüglich Closures. ich bin der meinung das es nicht gerade ein einfaches konzept ist, dass die sprach unnötig verkompliziert... ich bin dagegen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
S Primzahl || Primfaktorzerlegung -> Eure Laufzeiten *Wen es halt interessiert* Allgemeine Java-Themen 10
R Welche waren eure ersten Projekte? Allgemeine Java-Themen 10
J Eure Meinung: Threads verwenden, oder nicht? Allgemeine Java-Themen 6
E Eure erstellten Programme Allgemeine Java-Themen 3
André Uhres Welches Werzkeug benutzt ihr um eure Mails zu lesen? Allgemeine Java-Themen 47
F (Wie) sortiert ihr eure Felder, Methoden, etc? Allgemeine Java-Themen 19
J Eure Meinung - Das JMF (Java Media Framework) Allgemeine Java-Themen 3
K Design: Klassen in Pakete aufteilen - Eure Meinung Allgemeine Java-Themen 8
L Softwarepatente - Eure Meinung Allgemeine Java-Themen 4
B Algorithmus für Arbeit mit fehlenden Listenelementen? Allgemeine Java-Themen 1
kodela Eingabe für TextArray bedingt sperren Allgemeine Java-Themen 3
Karl_Der_Nette_Anfänger Hat wer ne Lösung für verknüpfte Postleitzahlen? (Baum/Wurzel Struktur) Allgemeine Java-Themen 11
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
G KeyListener für JTextField Allgemeine Java-Themen 5
webracer999 Library für Textsuche (z. B. include/exclude, and/or)? Allgemeine Java-Themen 5
I Module-Info für Jar erzeugen Allgemeine Java-Themen 7
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
B Simpler Eventlistener für Tastaturtaste bauen? Allgemeine Java-Themen 13
_user_q Eingegebenen Text Zeile für Zeile ausgeben lassen Allgemeine Java-Themen 11
E Key für TOTP Algorythmus(Google Authentificator) Allgemeine Java-Themen 0
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
jhCDtGVjcZGcfzug Klassen Was genau passiert hier? Kann mir das jemand bitte Zeile für Zeile erklären? Allgemeine Java-Themen 1
rosima26 Bester Sortieralgorithmus für kurze Arrays Allgemeine Java-Themen 40
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
B Lottospiel, genug Reihen tippen für 3 Richtige (Spaß mit Arrays)? Allgemeine Java-Themen 46
B Mit welchen Datentypen und Strukturierung am Besten dutzende Baccaratspiele Shcritt für Schritt durchsimulieren? Allgemeine Java-Themen 26
D Klassendesign für einen Pascal Interpreter Allgemeine Java-Themen 6
I OCR Library für Belegerkennung Allgemeine Java-Themen 7
farah GetterMathod für Farbkanäle Allgemeine Java-Themen 6
B Welcher Datentyp für sehr große Zahlenbereiche? Allgemeine Java-Themen 1
S Webservices für binäre Daten? Allgemeine Java-Themen 5
G Licence-Header für InHouse entwickelten Source Allgemeine Java-Themen 8
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
O git ignore für Intellji braucht es die .idea Dateien? Allgemeine Java-Themen 8
F Java Script für das Vorhaben das richtige? Allgemeine Java-Themen 9
M wiviel Java muss ich für die Berufswelt können ? Allgemeine Java-Themen 5
Robertop Datumsformat für GB ab Java 16 Allgemeine Java-Themen 1
Thallius Verschiedene entities für gleichen Code…. Allgemeine Java-Themen 8
OnDemand Zentrale "Drehscheibe" für verschiedene APIs Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
D SHA-3 für Java-version 1.8 Allgemeine Java-Themen 1
N Validator für einen SQL-Befehl Allgemeine Java-Themen 22
Muatasem Hammud Erstellung von Testdaten für Arrays Allgemeine Java-Themen 6
B Logikfehlersuche, das perfekte Lottosystem für 3 Richtige mit Arraylists? Allgemeine Java-Themen 61
G Methoden für die Zukunft sinnvoll? Allgemeine Java-Themen 4
M API für PLZ Umkreissuche Allgemeine Java-Themen 3
1Spinne JDK 8 für Eclipse installieren Allgemeine Java-Themen 5
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
L Methoden Parser für gängige Datumsformate? Allgemeine Java-Themen 1
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
buchfrau Anagram für beliebiges Wort Allgemeine Java-Themen 2
TonioTec Api für Datenaustausch zwischen Client und Server Allgemeine Java-Themen 0
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
Kirby.exe Distanz Map für die Distanztransformation erstellen Allgemeine Java-Themen 1
F PI Regler für Heizung Allgemeine Java-Themen 7
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
M Wie übergebe ich den Zähler für die Anzahl Rekursionsschritte korrekt? Allgemeine Java-Themen 2
B Login für User, der im Hintergrund Schedules ausführt Allgemeine Java-Themen 16
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
Z Welches GUI Framework für Java ist aktuell? Allgemeine Java-Themen 16
N Convert.FromBase64 von C# für Java Allgemeine Java-Themen 11
N fixed-keyword von C# für Java Allgemeine Java-Themen 6
O Suche Scripter für alt:V Project! Allgemeine Java-Themen 0
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
Kirby.exe Software für Graphische Visualisierung Allgemeine Java-Themen 20
B OOP Auslöser für NullPointerException Allgemeine Java-Themen 3
L Generator für einen Parser implementieren Allgemeine Java-Themen 13
DonMalte Ambitioniertes Projekt für Einsteiger & Motivierte Allgemeine Java-Themen 0
Kirby.exe Movement System für Spiel Allgemeine Java-Themen 13
Kirby.exe Framework für Game Design Allgemeine Java-Themen 8
W Alternative für Threads Allgemeine Java-Themen 6
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
Elyt Compiler-Fehler Datei kann nicht erstellt werden. Die Syntax für den Dateinamen etc. ist falsch. Allgemeine Java-Themen 2
Thallius Rätsel für Windows Profis Allgemeine Java-Themen 8
D OOP Gemeinsamen ID-Raum für zwei Klassen implementieren Allgemeine Java-Themen 7
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
Thallius Alternative für SwingWorker Allgemeine Java-Themen 5
I Lohnt sich heutzutage der Aufwand einer Portierung für MacOS Allgemeine Java-Themen 8
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
H OOP Setting(config) für Applikation sicheren? Allgemeine Java-Themen 9
OnDemand PDF Libary für Formulare Allgemeine Java-Themen 7
S Warmup für Lineare-Suche mit Zeitmessung Allgemeine Java-Themen 2
T Allgemeine Frage: GUI für 3D-Visualisierung Allgemeine Java-Themen 5
M Brainstorming für mein Projekt Allgemeine Java-Themen 30
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
F Was ist der Dateityp meines Parameters für die Main Methode. Allgemeine Java-Themen 6
C Bibliotheken für Algorithmische Geometrie Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben