Partiamo dal presupposto che in Kotlin non esiste il concetto di statico.

Quindi è possibile usare il pattern Singleton, ma in maniera un pò differente da Java.

Avremmo sempre il costruttore (primario) privato, e al posto di metodi statici useremo i companion object.

Fuel è un'altra libreria per eseguire richieste HTTP in Kotlin.

Di base ha due dipendenze; se usate Maven:

    <dependencies>
        <dependency>
            <groupId>com.github.kittinunf.fuel</groupId>
            <artifactId>fuel</artifactId>
            <version>1.8.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.kittinunf.result</groupId>
            <artifactId>result</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

Kotlin ha un supporto completo per gli Enum, e mette anche a disposizione alcuni metodi statici abbastanza comodi.

Vediamo un esempio basico.

Per tipo di variabile intendo che tipo di oggetto è una determinata variabile.

Può essere utile in alcuni per capire bene cosa restituisce un determinato oggetto.

In Java si usa instanceof, che corrisponde alla parola chiave is in Kotlin.

Tra le varie librerie messe a disposizione dalla Apache Foundation, ne ho trovato una apposita per la gestione delle email: Apache Commons Email!

Questa libreria migliora le API standard di Java, ed ho deciso di usarla per fare qualche test sulle email in Kotlin.

Se usate Maven, dovete aggiungere questo al file pom.xml:

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.4</version>
        </dependency>

Ho visto che per Kotlin ci sono diverse librerie per eseguire richieste HTTP.

Oggi vediamo khttp!

Se usate Maven, per installare la librerie aggiungete questo al pom.xml:

   <repositories>
        <repository>
            <id>jcenter</id>
            <url>http://jcenter.bintray.com/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>khttp</groupId>
            <artifactId>khttp</artifactId>
            <version>0.1.0</version>
        </dependency>
    </dependencies>

Compilate il progetto per scaricare libreria e dipendenze.

Non ho trovato nessuna funzione per contare il numero di righe di un file in Kotlin; quindi ho fatto come gli antichi:

  • apriamo il file
  • lo leggiamo
  • contiamo il numero di righe con un contatore
  • stampiamo il numero di righe

La gestione dei file temporanei in Kotlin (creazione, lettura e cancellazione) occpua all'incirca 3 righe di codice (5 se ci mettiamo i println per leggere il path e il contenuto).

Per creare un file temporaneo possiamo usare la funzione createTempFile, che accetta tre parametri facoltativi:

  • prefisso -> se non impostato, ne verrà impostato uno random
  • suffisso -> se non impostato, verrà usata l'estensione .tmp
  • directory -> se non impostata, verrà usata la directory temporanea del sistema sottostante

Unire array in Kotlin ricorda la classica concatenzaione.

Da quanto ho capito, non ci sono funzioni apposite, ma basta concaternali.

In Kotlin la creazione di un array è un pò diversa rispetto a quella a cui siamo abituati in Java.

Oggi vediamo come crearne uno e come farne una copia.