@Getter(copy=true)
@Setter(copy=true, includeFinalCollections = true)
public class Example {
private String[] strings = new String[10];
private final String[] finalStrings = new String[10];
private final List<Object> objects = new ArrayList<>();
}
public class Example {
private String[] strings = new String[10];
private final String[] finalStrings = new String[10];
private final List<Object> objects = new ArrayList<>();
public String[] getStrings() {
return strings.clone();
}
public void setStrings(String[] strings) {
if (strings.length == this.strings.length) {
System.arraycopy(strings, 0, this.strings, 0, strings.length);
} else {
this.strings = strings.clone();
}
}
public String[] getFinalStrings() {
return finalStrings.clone();
}
public void setFinalStrings(String[] finalStrings) {
if (finalStrings.length != this.finalStrings.length) {
throw new IllegalArgumentException("New finalStrings must be same length");
}
System.arraycopy(finalStrings, 0, this.finalStrings, 0, finalStrings.length);
}
public List<Object> getObjects() {
return new ArrayList(objects);
}
public void setObjects(Collection<? extends Object> objects) {
this.objects.clear();
this.objects.addAll(objects);
}
}