Зависит от семантики вашего класса, но обычно это будет:
public void add( A that ) {
}
Если вы намерены просто объединить элементы.
Вы можете использовать:
public boolean add( A that ) {
}
Если вы хотите узнать, была ли структура изменена или нет (Как в случае java.util.Set
или коллекций в целом)
И вы можете использовать public A add( A that ){}
, если вы хотите создать объект, подобный строителю (точно так же, как метод StringBuilder.append
.
A a = new A();
a.add( a ).add( b ).add( c ).build();
Так, в зависимости от семантики вашего класса, вы можете использовать любой из них.
В большинстве случаев (+ 90%) я делаю первое: void add( A other ){}