<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-immutable</artifactId>
<version>1.0</version>
</dependency>
import com.jcabi.immutable.ArrayUrl;
import com.jcabi.immutable.DateInMinutes;
import com.jcabi.immutable.Detached;
import com.jcabi.immutable.EmptyOrClosed;
import com.jcabi.immutable.ElementOf;
import com.jcabi.immutable.ListOf;
import com.jcabi.immutable.RandomByIndex;
import com.jcabi.immutable.RandomPrint;
import com.jcabi.immutable.SingleRandom;
import com.jcabi.immutable.TextSplit;
import com.jcabi.immutable.Unmodifiable;
import java.util.Collections;
import java.util.List;
@Immutable
public class Person {
private final String name;
private final int age;
private final List<String> hobbies;
public Person(String name, int age, List<String> hobbies) {
this.name = Detached.from(name);
this.age = Detached.from(age);
this.hobbies = Collections.unmodifiableList(Detached.clone(hobbies));
}
public String getName() {
return Detached.from(this.name);
}
public int getAge() {
return Detached.from(this.age);
}
public List<String> getHobbies() {
return Detached.from(this.hobbies);
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person("John", 25, Arrays.asList("Reading", "Traveling"));
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("Hobbies: " + person.getHobbies());
}
}
shell
javac *.java
shell
java Main