Java vanuit Clojure aanroepen
Ontdek hoe u Java-methoden aanroept, velden benadert en objecten rechtstreeks vanuit Clojure-code instantieert.
Java vanuit Clojure aanroepen is een gratis Functioneel programmeren met Clojure en backendontwikkeling op de JVM-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Functioneel programmeren met Clojure en backendontwikkeling op de JVM. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Functioneel programmeren met Clojure en backendontwikkeling op de JVM bevat in totaal 4 lessen.
Clojure en Java: de beste vrienden!
Clojure draait op de Java Virtual Machine (JVM), waardoor het alle geweldige Java-bibliotheken rechtstreeks kan gebruiken! Dit heet Java Interop.
- Toegang krijgen tot Java-klassen en -methoden.
- Het omvangrijke Java-ecosysteem benutten.
- De kracht van Clojure combineren met de stabiliteit van Java.
In deze les leer je hoe je Java-code vanuit Clojure aanroept.
Java-objecten maken
Om een Java-klasse te gebruiken, moet je er vaak een instantie van maken. In Clojure kun je dat doen met een speciale syntaxis.
- Gebruik
(new ClassName args)of de korte vorm(ClassName. args). - De
.achter de klassenaam is een handige manier om een constructor aan te roepen.
Voorbeeld: (java.util.Date.) maakt een nieuw Date-object.
Demo: nieuw Date-object
Probeer een nieuw java.util.Date-object te maken. Het stelt de huidige datum en tijd voor.
(ns my-app.core
(:gen-class))
(defn -main
"Creates and prints a new Java Date object."
[& args]
(let [current-date (java.util.Date.)]
(println "Current date:" current-date)))Statische Java-methoden aanroepen
Statische methoden horen bij de klasse zelf, niet bij een specifieke objectinstantie. Je kunt ze rechtstreeks op de klasse aanroepen.
- Syntaxis:
(ClassName/staticMethodName args) - De
/scheidt de klassenaam van de naam van de statische methode.
Voorbeeld: (java.lang.Math/random) roept de statische methode random van de klasse Math aan.
Demo: Math.random()
Laten we een willekeurig getal ophalen met Java's statische methode Math/random. Deze retourneert een double tussen 0.0 (inclusief) en 1.0 (exclusief).
(ns my-app.core
(:gen-class))
(defn -main
"Generates and prints a random number using Java's Math/random."
[& args]
(let [rand-num (java.lang.Math/random)]
(println "Random number:" rand-num)))Java-instantiemethoden aanroepen
Zodra je een object hebt, kun je de instantiemethoden ervan aanroepen. Deze methoden werken met de gegevens van dat specifieke object.
- Syntax:
(.methodName instance args)of(. instance methodName args). - De
.vóór de methodenaam geeft aan dat het om een aanroep van een instantiemethode gaat.
Voorbeeld: (.getTime my-date) roept de methode getTime aan op het object my-date.
Demo: Date.getTime()
Maak een Date-object en roep vervolgens de methode getTime() ervan aan. Deze methode retourneert het aantal milliseconden sinds 1 januari 1970, 00:00:00 GMT.
(ns my-app.core
(:gen-class))
(defn -main
"Creates a Date object and calls its getTime() method."
[& args]
(let [current-date (java.util.Date.)
time-in-millis (.getTime current-date)]
(println "Current date:" current-date)
(println "Milliseconds since epoch:" time-in-millis)))Java-velden benaderen
Java-objecten kunnen velden (variabelen) hebben waarin gegevens worden opgeslagen. Vanuit Clojure kun je deze velden rechtstreeks benaderen.
- Syntax:
(.-fieldName instance)om de waarde van een veld op te halen. - Gebruik voor statische velden
(.-staticFieldName ClassName).
Voorbeeld: (.-out System) benadert het statische veld out van de klasse System, dat een PrintStream is.
Demo: het veld System.out
De klasse java.lang.System heeft een statisch veld met de naam out. Dit is een PrintStream-object. We kunnen dit benaderen om naar de console te schrijven.
(ns my-app.core
(:gen-class))
(defn -main
"Accesses System.out and prints a message using its println method."
[& args]
(let [out-stream (.-out java.lang.System)]
(.println out-stream "Hello from System.out!")))Korte controle: Java-interoperabiliteit
Je hebt geleerd hoe je met Java-klassen kunt werken. Welke Clojure-expressie gebruikt de afkorting ClassName. om een java.io.File-object te maken voor het pad "myfile.txt"?
Samenvatting: de basis van Java-interoperabiliteit
Goed gedaan! Je hebt de basis geleerd van het werken met Java vanuit Clojure:
- Objecten maken: Gebruik
(ClassName. args)of(new ClassName args). - Statische methoden aanroepen: Gebruik
(ClassName/staticMethodName args). - Instantiemethoden aanroepen: Gebruik
(.methodName instance args)of(. instance methodName args). - Velden benaderen: Gebruik
(.-fieldName instance).
Met deze krachtige mogelijkheid kun je het volledige Java-ecosysteem benutten binnen je Clojure-projecten. Vervolgens bekijken we hoe je Java-interfaces implementeert.
Leer Clojure met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Java vanuit Clojure aanroepen” gratis?
Ja — de volledige tekst van “Java vanuit Clojure aanroepen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Functioneel programmeren met Clojure en backendontwikkeling op de JVM wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Functioneel programmeren met Clojure en backendontwikkeling op de JVM bevat in totaal 4 lessen.
Wat leer ik in “Java vanuit Clojure aanroepen”?
Ontdek hoe u Java-methoden aanroept, velden benadert en objecten rechtstreeks vanuit Clojure-code instantieert. Je oefent met Functioneel programmeren met Clojure en backendontwikkeling op de JVM door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Functioneel programmeren met Clojure en backendontwikkeling op de JVM te beginnen?
Ervaring vooraf is niet nodig. Functioneel programmeren met Clojure en backendontwikkeling op de JVM op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Java vanuit Clojure aanroepen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Functioneel programmeren met Clojure en backendontwikkeling op de JVM?
Ja. Elke les over Functioneel programmeren met Clojure en backendontwikkeling op de JVM bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Java vanuit Clojure aanroepen
- Java-interfaces implementeren
- Java-bibliotheken en -tools benutten
- Werken met Java-collecties en arrays