M
Mart
Gast
Ich habe halt ein paar "rundumschläge" gemacht zu andere sprachen und da gibts fancy sachen die halt "Fehlen" in java bzw ich nicht so gefunden habe und versteh nicht wieso es sowas nicht in java gibt
1. Basierend auf https://blog.allegro.tech/2018/05/From-Java-to-Kotlin-and-Back-Again.html den 1sten Punkt hat Kotlin =>
weil es ist öfter der Fall dass man die Argumente Final braucht bzw benutzen sollte
2. super Aufruf von C#
wenn man das hat als Konstruktor hat in C#
oder so ähnlich ... ich bin sowieso dazu gezwungen den super aufruf in der Ersten Zeile zu machen dh die Restriktion gibts ja schon
es würde halt so besser ins Auge fallen wenn man super aufrufen will wenn man einen anderen konstruktor aufrufen will kann man es ja auch irgendwie so umsetzen
es würde halt die lesbarkeit erhöhen, von der Funktionalität ändert sich nichts da diese Methoden sowieso an erster stelle stehen MÜSSEN
3. c# Getter und Setter
in c# kann ich getter und setter genauso shcreiben wie in java => sollte auch in java bleiben
mit dem Lombok auto erzeuger für getter und setter "gibts das" merh oder weniger, aber warum ist sowas nicht standardmäßig in java? sondern brauche eine Externe Bibliothek
Allgemein ist gefühlt java von den "fancy" sachen hinterher wie jetzt bei den 3 Themen oben beschrieben
ich bin aber selber gegen "ultra fancy" wie zb in python da hat man 1e zeile die ein Neuronales netzwerk aufbaut und man hat keine ahnung was passiert
oder wie in dem Obigen link
[CODE lang="java" title="java code => ohne zu wissen was die Klasse tut versteh ich es halbwegs"]public int parseAndInc(String number) {
return Optional.ofNullable(number)
.map(Integer:
arseInt)
.map(it -> it + 1)
.orElse(0);
}
[/CODE]
[CODE lang="java" title="Kotlin => keine ahnung was da passiert es ist zu zu kurz"]fun parseAndInc(number: String?): Int {
return number.let { Integer.parseInt(it) }
.let { it -> it + 1 } ?: 0
}
[/CODE]
vllt sind das alles auch nur meine eindrücke von java? andere sprachen wie Kotlin Python usw gehen halt davon aus dass der der es programmiert die ganzen fancy sachen weiß aber manchmal ist super fancy gar nicht mal so toll
1. Basierend auf https://blog.allegro.tech/2018/05/From-Java-to-Kotlin-and-Back-Again.html den 1sten Punkt hat Kotlin =>
wieso ist es dann nicht standardmäßig so in java dass man alle Argumente als Final deklariertWell, in Kotlin, method arguments are values, so you can’t change the num argument. That’s good language design because you shouldn’t change method arguments.
weil es ist öfter der Fall dass man die Argumente Final braucht bzw benutzen sollte
2. super Aufruf von C#
wenn man das hat als Konstruktor hat in C#
dann könnte man es doch in java so umsetzen wenn man einen Super Konstruktor willpublic xyz ( argumente ) : base ( argumente )
Java:
public xyz ( String id ) super ( id ) {
}
es würde halt so besser ins Auge fallen wenn man super aufrufen will wenn man einen anderen konstruktor aufrufen will kann man es ja auch irgendwie so umsetzen
Java:
public xyz ( String id ) this ( id ) {
}
3. c# Getter und Setter
in c# kann ich getter und setter genauso shcreiben wie in java => sollte auch in java bleiben
syntax weis ich gerade nicht genauin c# kann ich aber zb public int xy = 0; { get ; set }
mit dem Lombok auto erzeuger für getter und setter "gibts das" merh oder weniger, aber warum ist sowas nicht standardmäßig in java? sondern brauche eine Externe Bibliothek
Allgemein ist gefühlt java von den "fancy" sachen hinterher wie jetzt bei den 3 Themen oben beschrieben
ich bin aber selber gegen "ultra fancy" wie zb in python da hat man 1e zeile die ein Neuronales netzwerk aufbaut und man hat keine ahnung was passiert
oder wie in dem Obigen link
[CODE lang="java" title="java code => ohne zu wissen was die Klasse tut versteh ich es halbwegs"]public int parseAndInc(String number) {
return Optional.ofNullable(number)
.map(Integer:
.map(it -> it + 1)
.orElse(0);
}
[/CODE]
[CODE lang="java" title="Kotlin => keine ahnung was da passiert es ist zu zu kurz"]fun parseAndInc(number: String?): Int {
return number.let { Integer.parseInt(it) }
.let { it -> it + 1 } ?: 0
}
[/CODE]
vllt sind das alles auch nur meine eindrücke von java? andere sprachen wie Kotlin Python usw gehen halt davon aus dass der der es programmiert die ganzen fancy sachen weiß aber manchmal ist super fancy gar nicht mal so toll