** Dynamisch typisierte Skriptsprache, die auf JVM ausgeführt wird **
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.)
--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"
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.
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