2010-09-02 100 views

回答

11

區別在於Naming是靜態方法的工具類,而Registry是遠程接口。不出所料,Naming在內部呼叫Registry。請注意,您傳遞給java.rmi.Namingname參數爲URL格式,幷包含註冊表的位置,而使用java.rmi.registry.Registry時,name只是名稱。

例如,你會叫這樣的:

Naming.rebind("//host/objName", myObj); 

而與Registry,你需要一個現有的手柄註冊表對象上,並且你會打電話:

Registry registry = LocateRegistry.getRegistry("host"); 
registry.rebind("objName", myObj); 

所以Naming實際上只是一個便利的類,它可以幫助您不必手動查找Registry - 它可以一步執行註冊表查找和重新綁定操作。