Kalle Java fra Clojure
Oppdag hvordan du kaller Java-metoder, får tilgang til felt og oppretter objekter direkte fra Clojure-kode.
Kalle Java fra Clojure er en gratis leksjon i Clojure: funksjonell programmering og backendutvikling på JVM på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Clojure: funksjonell programmering og backendutvikling på JVM, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Clojure: funksjonell programmering og backendutvikling på JVM inneholder totalt 4 leksjoner.
Clojure og Java: Bestevenner!
Clojure kjører på Java Virtual Machine (JVM), noe som betyr at språket kan bruke alle de fantastiske Java-bibliotekene direkte! Dette kalles Java Interop.
- Få tilgang til Java-klasser og -metoder.
- Utnytt det omfattende Java-økosystemet.
- Kombiner kraften i Clojure med stabiliteten til Java.
I denne leksjonen viser vi hvordan De kan kalle Java-kode fra Clojure.
Opprette Java-objekter
For å bruke en Java-klasse må De ofte opprette en instans av den. I Clojure kan De gjøre dette ved hjelp av en spesiell syntaks.
- Bruk
(new ClassName args)eller kortformen(ClassName. args). .etter klassenavnet er en praktisk måte å kalle en konstruktør på.
Eksempel: (java.util.Date.) oppretter et nytt Date-objekt.
Demo: Nytt Date-objekt
Prøv å opprette et nytt java.util.Date-objekt. Det representerer gjeldende dato og klokkeslett.
(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)))Kalle statiske Java-metoder
Statiske metoder tilhører selve klassen, ikke en bestemt objektinstans. De kan kalles direkte på klassen.
- Syntaks:
(ClassName/staticMethodName args) /skiller klassenavnet fra navnet på den statiske metoden.
Eksempel: (java.lang.Math/random) kaller den statiske metoden random i klassen Math.
Demo: Math.random()
La oss hente et tilfeldig tall ved hjelp av Java-statik-metoden Math/random. Den returnerer en double mellom 0.0 (inkludert) og 1.0 (ekskludert).
(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)))Kall av instansmetoder i Java
Når De har et objekt, kan De kalle dets instansmetoder. Disse metodene opererer på dataene til det aktuelle objektet.
- Syntaks:
(.methodName instance args)eller(. instance methodName args). .før metodenavnet angir et kall til en instansmetode.
Eksempel: (.getTime my-date) kaller metoden getTime på objektet my-date.
Demo: Date.getTime()
Opprett et Date-objekt, og kall deretter metoden getTime(). Denne metoden returnerer antallet millisekunder siden 1. januar 1970 kl. 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)))Tilgang til Java-felter
Java-objekter kan ha felter (variabler) som lagrer data. De kan få direkte tilgang til disse feltene fra Clojure.
- Syntaks:
(.-fieldName instance)for å hente verdien til et felt. - For statiske felter bruker De
(.-staticFieldName ClassName).
Eksempel: (.-out System) gir tilgang til det statiske feltet out i klassen System, som er en PrintStream.
Demo: System.out-feltet
Klassen java.lang.System har et statisk felt kalt out, som er et PrintStream-objekt. De kan få tilgang til det for å skrive ut til konsollen.
(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!")))Kort kontroll: Java-interoperabilitet
De har lært hvordan De kan samhandle med Java-klasser. Hvilket Clojure-uttrykk bruker kortformen ClassName. for å opprette et java.io.File-objekt for banen "myfile.txt"?
Oppsummering: Grunnleggende Java-interoperabilitet
Godt jobbet! De har lært det grunnleggende om å samhandle med Java fra Clojure:
- Opprette objekter: Bruk
(ClassName. args)eller(new ClassName args). - Kalle statiske metoder: Bruk
(ClassName/staticMethodName args). - Kalle instansmetoder: Bruk
(.methodName instance args)eller(. instance methodName args). - Få tilgang til felter: Bruk
(.-fieldName instance).
Denne kraftige funksjonaliteten gjør det mulig å dra nytte av hele Java-økosystemet i Clojure-prosjektene Deres. Deretter skal De utforske hvordan Java-grensesnitt kan implementeres.
Lær deg Clojure med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Kalle Java fra Clojure» gratis?
Ja – hele teksten i «Kalle Java fra Clojure» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Clojure: funksjonell programmering og backendutvikling på JVM-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Clojure: funksjonell programmering og backendutvikling på JVM inneholder totalt 4 leksjoner.
Hva lærer jeg i «Kalle Java fra Clojure»?
Oppdag hvordan du kaller Java-metoder, får tilgang til felt og oppretter objekter direkte fra Clojure-kode. Du øver på Clojure: funksjonell programmering og backendutvikling på JVM med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Clojure: funksjonell programmering og backendutvikling på JVM?
Ingen tidligere erfaring er nødvendig. Clojure: funksjonell programmering og backendutvikling på JVM på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Kalle Java fra Clojure»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Clojure: funksjonell programmering og backendutvikling på JVM-leksjonen?
Ja. Alle Clojure: funksjonell programmering og backendutvikling på JVM-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Kalle Java fra Clojure
- Implementere Java-grensesnitt
- Utnytte Java-biblioteker og -verktøy
- Arbeid med Java-samlinger og arrayer