2015-12-22 3 views
1

При экспорте объекта я считаю, что и этоЕсть ли разница между использованием возвращаемого значения UnicastRemoteObject.exportObject и экспортируемого объекта?

LocateRegistry.createRegistry(1099); 
ObjectToExport obj = new ObjectToExport(); 
UnicastRemoteObject.exportObject(obj, 1099); 
Naming.rebind("ObjectName", obj); 

и это

LocateRegistry.createRegistry(1099); 
ObjectToExport obj = new ObjectToExport(); 
Naming.rebind("ObjectName", UnicastRemoteObject.exportObject(obj, 1099)); 

работы. В первом я не использую возвращаемое значение exportObject, а во втором - я. Есть ли разница между этими двумя способами экспорта объекта? API только говорит, что возвращаемое значение равно remote object stub.

ответ

0

На этапе экспорта нет никакой разницы, но вы также привязываете объект, и на этом этапе есть разница. На первом этапе вы передаете фактический объект; во втором - заглушка. Однако семантика RMI заключается в том, что экспортированные удаленные объекты передаются удаленным методам в качестве их собственных заглушек, поэтому фактический эффект в реестре одинаков.