Ссылки на объекты в Java EE. Разница для удаленных и локальных интерфейсов?
Насколько я знаю, Java - это только вызов по ссылке. Если объект должен пройти через удаленный интерфейс, может ли он иметь ссылку? Теперь сущность находится в основном в другом контейнере, как она все еще может иметь ссылку на объект? Другими словами: возможно ли, чтобы объекты, которые "проходят" через удаленные интерфейсы, были не просто ссылками, а копией объекта (вызов по значению)?
Извините, если это глупая идея, но вся концепция вызова по ссылке (или передачи по ссылке?) Сбивает меня с толку в Java EE.
РЕДАКТИРОВАТЬ: Другими словами: объекты из сессионных компонентов ВСЕГДА передаются в качестве ссылки?
2 ответа
Java всегда является вызовом по значению. Вот пример, который прояснит ситуацию:
class Operation{
int data=50;
void change(int data){
data=data+100;//changes will be in the local variable only
}
public static void main(String args[]){
Operation op=new Operation();
System.out.println("before change "+op.data);
op.change(500);
System.out.println("after change "+op.data);
}
}
Output:before change 50
after change 50
Это копия объекта сущности, а не ссылка, я имею в виду, поэтому сериализация объектов сущности здесь очень важна, сериализация помогает получить копию объекта сущности при передаче через удаленный интерфейс, а не ссылку, потому что эта ссылка будет иметь нет значения в другом контейнере..