Erste Schritte mit Groovy für problematische Java-Ingenieure

Inhaltsverzeichnis


Was ist Groovy?

** Dynamisch typisierte Skriptsprache, die auf JVM ausgeführt wird **


Eigenschaften von Groovy

Warum auf "lästige" "Java-Ingenieure" abzielen ...

Das liegt daran, dass Groovy die folgenden Vorteile hat.

** 1. Weniger Code als Java ** 2. Java API ist ebenfalls verfügbar 3. Reichhaltiges Ökosystem (Grails für Webanwendungsframework, Spock für Testframework usw.)


Groovy Vorteile - Weniger Codevolumen im Vergleich zu Java

--Variable Deklaration / Methodendeklaration

Variablendeklaration ist mit def möglich (Typ kann angegeben werden) Bei der Deklaration mit "def" lautet der Typ der Variablen "Objekttyp" public ist nicht erforderlich, wenn eine öffentliche Methode deklariert wird (da der Umfang der Methode standardmäßig öffentlich ist).

Java


String helloWorld = "Hello World.";

public static void main(String[] args) {
    // do something
}

Groovy


def helloWorld = "Hello World."

//public kann weggelassen werden
static void main(String[] args) {
    // do something
}

//Der Rückgabetyp kann def sein
static def main(String[] args) {
    //do something
}

//Rückgabetyp kann weggelassen werden
static main(String[] args) {
    //do something
}

//Der Argumenttyp kann ebenfalls weggelassen werden
static main(args) {
    //do something
}

--Zeichenkette

Sie können eine Variable in Form einer $ -Variablen in eine Zeichenfolge einbetten

Java


String name = "Michael";
System.out.println("Hello " + name + "!");

//Ausgabeergebnis
// Hello Michael!

Groovy


def name = "Michael"
println "Hello $name!"

//Ausgabeergebnis
// Hello Michael!

--Listen- und Karteninitialisierung

Die Listeninitialisierung lautet [] Die Karteninitialisierung lautet [:]

Java


List<String> list = new ArrayList<>();
Map<String, String> map = new HashMap<>();

Groovy


def list = []
def map = [:] //Typ ist LinkedhashMap

Näher ist bequem it ist eine implizite Variable, die das an den Abschluss übergebene Argument darstellt (im folgenden Beispiel jedes Element der Liste numbers)

Java


List<Integer> numbers = List.of(1, 2, 3, 4, 5);
List<Integer> odds = numbers.stream().filter(number -> number % 2 != 0).collect(Collectors.toList());
System.out.println(odds);

//Ausgabeergebnis
// [1, 3, 5]

Groovy


def numbers = [1, 2, 3, 4, 5] 
def odds = numbers.findAll { it % 2 != 0 } 
//Diese Schreibweise ist auch in Ordnung
// def odds = numbers.findAll { number -> number % 2 != 0 }
println odds

//Ausgabeergebnis
// [1, 3, 5]

Sie können die Bibliothek aus einem externen Repository (z. B. dem Maven-Repository) mit einem Konfigurationsverwaltungstool namens Grape with @ Grab abrufen Die groovy.sql.Sql Klasse ist praktisch

Personentisch

person_id first_name last_name
1 Michael Jordan
2 Michael Jackson

Java


// mysql-connector-Laden Sie Java herunter und fügen Sie es dem Klassenpfad hinzu

Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sampledb", "root", "root");
// first_Letzte Aufzeichnung, deren Name Michael ist_Name holen
PreparedStatement pstmt = conn.prepareStatement("SELECT last_name FROM person WHERE first_name = ?");
pstmt.setString(1, "Michael");
ResultSet rs = pstmt.executeQuery();
//Letzter der erfassten Aufzeichnung_Ausgabename an Konsole
while(rs.next()) {
    System.out.println(rs.getString("last_name"));
}

//Ausgabeergebnis
// "Jordan"
// "Jackson"

Groovy


//MySQL aus einem externen Repository mit Grape-connector-Holen Sie sich Java
@GrabConfig(systemClassLoader=true)
@Grab("mysql:mysql-connector-java:5.1.49")

def sql = Sql.newInstance("jdbc:mysql://localhost:3306/sampledb", "root", "root", "com.mysql.jdbc.Driver")
// first_Letzte Aufzeichnung, deren Name Michael ist_Name holen
def rows = sql.rows("SELECT last_name FROM person WHERE first_name = ?", ["Michael"])
//Letzter der erfassten Aufzeichnung_Ausgabename an Konsole
rows.each {
    println it.last_name
}

//Ausgabeergebnis
// "Jordan"
// "Jackson"

Nachteile von Groovy

Da es sich um eine dynamisch typisierte Sprache handelt, wird der Typ nicht deklariert, und die mit def deklarierten Variablen- und Abschlussargumente werden zur Laufzeit typgeprüft, sodass durch den Typ verursachte Fehler erst zur Laufzeit angezeigt werden.

Einige Syntaxen wie Try-with-Resource-Anweisungen und Lambda-Ausdrücke werden im 2. System nicht unterstützt. Diese werden auch in der Version 3 unterstützt, aber seit der Veröffentlichung im Februar dieses Jahres besteht die Möglichkeit, dass sogar die neueste Version die 2.5-Serie für Frameworks und Bibliotheken verwendet, die Groovy verwenden.


abschließend

Groovy benötigt weniger Code als Java und kann die Entwicklungseffizienz verbessern. Außerdem sind die Lernkosten für Java-Ingenieure niedrig und das Lernen dauert nicht lange. (Ich habe es auch in ungefähr 3 Monaten gelernt.) Wenn Sie Ihren Java-Code für überflüssig halten oder effizienter entwickeln möchten, probieren Sie Groovy aus.


Recommended Posts

Erste Schritte mit Groovy für problematische Java-Ingenieure
[Java] Einführung in Java
Einführung in Java
Einführung in Java zum ersten Mal # 2
[Monatlich 2017/04] Einführung in groovy !! ~ Java Grammatik / Spezifikationsvergleich ~
Einführung in den Java-Befehl
[Einführung in Java] Grundlagen der Java-Arithmetik (für Anfänger)
Einführung in Java für Anfänger Grundkenntnisse der Java-Sprache ①
Was Java-Ingenieure benötigen, um sich auf die Java 11-Version vorzubereiten
[Java] Einführung in den Lambda-Ausdruck
[Java] Einführung in die Stream-API
[Einführung in Janken (ähnliche) Spiele] Java
Eine Einführung in Funktionstypen für objektorientierte Programmierer in Elm
C # Spickzettel für Java-Techniker
[Einführung in Java] Über Lambda-Ausdrücke
[Einführung in Java] Informationen zur Stream-API
Einführung in die funktionale Programmierung (Java, Javascript)
Erste Einführung in Mac (Java-Ingenieur)
Einführung in die Programmierung für Studenten: Einführung
Erste Schritte mit Ruby für Java-Ingenieure
Einführung in die Programmierung für Studenten: Variablen
Über das Verfahren, damit Java funktioniert
Einführung in Algorithmen mit Java-Suche (Tiefenprioritätssuche)
[Einführung in Java] So schreiben Sie ein Java-Programm
Ausgabe des Buches "Einführung in Java"
Zum ersten Mal Java lernen [Einführung]
[Java] Einführung
[Einführung in Java] Informationen zu Variablendeklarationen und -typen
Einführung in Kotlin für iOS-Entwickler ④-Typ
Memo für die Migration von Java nach Kotlin
[Einführung in Java] Informationen zur iterativen Verarbeitung (while, do-while, for, Erweiterung für, break, continue)
Einführung in Algorithmen mit Java --Search (Breitenprioritätssuche)
[Einführung in die Java-Datenstruktur] Erstellen Sie Ihre eigene schnelle ArrayDeque für den primitiven Typ
[Für Anfänger] Einführung in Java Grundkenntnisse der Java-Sprache ③ Array, Auswahlstruktur, iterative Struktur
Für meinen Sohn, der angefangen hat, Java mit "Einführung in Java" in einer Hand zu studieren
Eine Möglichkeit für Java / Scala-Entwickler, ihre Karriere als Dateningenieure voranzutreiben.
[Java] So testen Sie, ob es in JUnit null ist
[Einführung in Java] Informationen zur Typkonvertierung (Besetzung, Promotion)
Einführung in Algorithmen mit Java --Search (Bit Full Search)
Schnelles Lernen von Java "Einführung?" Teil 1 Erstellen einer Umgebung
Ich möchte eine E-Mail in Java senden.
So verwenden Sie ein Array für HashMap-Schlüssel
Road to Java Engineer Teil 1 Einführung & Umgebungskonstruktion
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Einführung]
Einführung in Kotlin für iOS-Entwickler ⑤-Practical XML
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Einführung]
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
Einführung in Spring Boot + In-Memory Data Grid
Einführung in Kotlin für iOS-Entwickler ③-About gradle
Für Java-Ingenieure, die ab sofort Kotlin starten
So lösen Sie Ausdrucksprobleme in Java
Einführung in Kotlin für iOS-Entwickler ①-Umgebungskonstruktion
Einführung in Kotlin für iOS-Entwickler ②-Projekterstellung
Verwenden wir Java New FileIO! (Einführung für Anfänger)
Punkte, die bei Java beachtet werden müssen, sind gleich
[Java] Wie man mehrere for-Schleifen einzeln macht
Eine Einführung in Java, die Menschen erzählt, die schon lange C-Sprache sprechen
Einführung in Ruby 2
Für JAVA-Lernen (2018-03-16-01)