Не то, чтобы я знал, как осуществляется любая фактическая реализация, но когда неизменность обеспечивается во время компиляции, как это:
class Immutable {
private final String str = "A";
public String getString(){
return str;
}
}
Вы могли бы просто передать ссылку, верно? Это не библиотека Actor, но Google Guava дает вам эту идиому return ImmutableList.copyOf(someList);
, и она будет нулевой копией, если someList
неизменна (то есть, если это экземпляр ImmutableList). думаю, что можно использовать аналогичный подход, например, реализуя интерфейс маркера Immutable
и проверяя это, и тем самым решая, копировать или нет.