dead programmer
dead programmer

Reputation: 4365

Creating data class having array of some class type in kotlin

I want to transform my java POJO class to kotlin data class. But I m not able to write constructor to accept an array.

public class myClass {

    private String department;

    private employee[] data;

}

Upvotes: 0

Views: 2770

Answers (2)

I V
I V

Reputation: 143

You can create a class like this:

data class MyClass(
    val department: String? = null,
    val data: Array<Employee>? = null
)

Upvotes: 1

deHaar
deHaar

Reputation: 18558

Write a data class, which will generate several things for you including a constructor and just give it an Array<Employee>:

/**
 * A data class accepting an array of employees as constructor argument
 */
data class MyClass(val department: String, val employees: Array<Employee>)

/**
 * Dummy class to make this work
 */
data class Employee(val name: String)

/**
 * Main function
 */
fun main() {
    // create an array of employees
    var a1 = Array(5) {
        Employee("Mister Money");
        Employee("Monsieur Monétaire");
        Employee("Señor Dinero");
        Employee("Herr Geld");
        Employee("Signore denaro")
    }

    // and pass it to a new instance of Employee
    val myInstance = MyClass("Finance", a1)

    // then print that instance
    println(myInstance)
}

Output of printing the created instance of MyClass:

myClass(department=Finance, employees=[Employee(name=Signore denaro), Employee(name=Signore denaro), Employee(name=Signore denaro), Employee(name=Signore denaro), Employee(name=Signore denaro)])

Upvotes: 1

Related Questions