Kald af Java fra Clojure
Opdag, hvordan De kalder Java-metoder, tilgår felter og opretter objekter direkte fra Clojure-kode.
Kald af Java fra Clojure er en gratis Funktionel programmering i Clojure og backendudvikling på JVM-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Funktionel programmering i Clojure og backendudvikling på JVM, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Funktionel programmering i Clojure og backendudvikling på JVM-kurset indeholder 4 lektioner i alt.
Clojure og Java: Bedste venner!
Clojure kører på Java Virtual Machine (JVM), hvilket betyder, at sproget kan bruge alle de fantastiske Java-biblioteker direkte! Det kaldes Java-interoperabilitet.
- Få adgang til Java-klasser og -metoder.
- Udnyt det omfattende Java-økosystem.
- Kombiner Clojures styrke med Javas stabilitet.
I denne lektion viser vi dig, hvordan du kalder Java-kode fra Clojure.
Opret Java-objekter
Hvis du vil bruge en Java-klasse, skal du ofte oprette en instans af den. I Clojure kan du gøre det ved hjælp af en særlig syntaks.
- Brug
(new ClassName args)eller den korte form(ClassName. args). .efter klassenavnet er en praktisk måde at kalde en konstruktør på.
Eksempel: (java.util.Date.) opretter et nyt Date-objekt.
Demo: Nyt Date-objekt
Prøv at oprette et nyt java.util.Date-objekt. Det repræsenterer den aktuelle dato og det aktuelle klokkeslæt.
(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)))Kald statiske Java-metoder
Statiske metoder tilhører selve klassen og ikke en bestemt objektinstans. Du kan kalde dem direkte på klassen.
- Syntaks:
(ClassName/staticMethodName args) /adskiller klassenavnet fra navnet på den statiske metode.
Eksempel: (java.lang.Math/random) kalder den statiske metode random i klassen Math.
Demo: Math.random()
Lad os hente et tilfældigt tal ved hjælp af Javas statiske Math/random-metode. Den returnerer en double mellem 0.0 (inklusive) og 1.0 (eksklusive).
(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)))Kald af instansmetoder i Java
Når du har et objekt, kan du kalde dets instansmetoder. Disse metoder arbejder på dataene i netop dette objekt.
- Syntaks:
(.methodName instance args)eller(. instance methodName args). .før metodenavnet angiver et instansmetodekald.
Eksempel: (.getTime my-date) kalder metoden getTime på objektet my-date.
Demo: Date.getTime()
Opret et Date-objekt, og kald derefter dets getTime()-metode. Denne metode returnerer antallet af 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)))Adgang til felter i Java
Java-objekter kan have felter (variabler), der gemmer data. Du kan få direkte adgang til disse felter fra Clojure.
- Syntaks:
(.-fieldName instance)for at hente værdien af et felt. - Brug
(.-staticFieldName ClassName)til statiske felter.
Eksempel: (.-out System) åbner det statiske felt out i klassen System, som er en PrintStream.
Demo: Feltet System.out
Klassen java.lang.System har et statisk felt med navnet out, som er et PrintStream-objekt. Vi kan få adgang til det for at skrive 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!")))Hurtigt tjek: Java-interoperabilitet
Du har lært, hvordan du interagerer med Java-klasser. Hvilket Clojure-udtryk bruger den korte notation ClassName. til at oprette et java.io.File-objekt for stien "myfile.txt"?
Opsummering: Grundlæggende Java-interoperabilitet
Godt gået! Du har lært det grundlæggende i at interagere med Java fra Clojure:
- Opret objekter: Brug
(ClassName. args)eller(new ClassName args). - Kald statiske metoder: Brug
(ClassName/staticMethodName args). - Kald instansmetoder: Brug
(.methodName instance args)eller(. instance methodName args). - Få adgang til felter: Brug
(.-fieldName instance).
Denne stærke funktion gør det muligt at udnytte hele Java-økosystemet i dine Clojure-projekter. Derefter skal du se på, hvordan du implementerer Java-grænseflader.
Lær Clojure med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Kald af Java fra Clojure” gratis?
Ja — hele teksten til “Kald af Java fra Clojure” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Funktionel programmering i Clojure og backendudvikling på JVM-kurset, skal du opgradere til CoddyKit PRO. Funktionel programmering i Clojure og backendudvikling på JVM-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Kald af Java fra Clojure”?
Opdag, hvordan De kalder Java-metoder, tilgår felter og opretter objekter direkte fra Clojure-kode. Du øver dig i Funktionel programmering i Clojure og backendudvikling på JVM med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Funktionel programmering i Clojure og backendudvikling på JVM?
Der kræves ingen tidligere erfaring. Funktionel programmering i Clojure og backendudvikling på JVM på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Kald af Java fra Clojure”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Funktionel programmering i Clojure og backendudvikling på JVM-lektion?
Ja. Alle Funktionel programmering i Clojure og backendudvikling på JVM-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Kald af Java fra Clojure
- Implementering af Java-interfaces
- Udnyttelse af Java-biblioteker og -værktøjer
- Arbejde med Java-samlinger og arrays