- Hãy chắc chắn để sử dụng URL khi bắt đầu các máy chủ Di chuyển các lớp trong thư mục server vào máy chủ của bạn và bắt đầu đăng ký RMI và máy
3/ Remote Objects and the equals and hashCode Methods(Các đối tượng từ xa và các phương thức so sánh bằng và mã băm):
tượng từ xa và các phương thức so sánh bằng và mã băm):
- Trong trường hợp một tập băm hoặc bản đồ băm, phương thức hashCode phải được xác định.Tuy nhiên, có một vấn đề khi cố gắng để so sánh các đối tượng từ xa.Tìm kết quả ra nếu hai đối tượng từ xa có cùng một nội dung, gọi đến
equals và equals cần liên lạc với máy chủ đang chứa các đối tượng và so sánh các nội dung đó.Nhưng việc gọi đó có thể thất bại. Tuy nhiên, phương thức
equals trong lớp Object không được mô tả để ném một RemoteException, trong khi tất cả các phương thức trong một giao diện từ xa phải ném ngoại lệ. Bởi vì một phương thức lớp con không thể ném nhiều ngoại lệ hơn so với phương pháp lớp cha mà nó thay thế, ta không thể xác định một phương thức equals trong một giao diện từ xa.Tương tự cho hashCode.
- Đáng lẽ, các phương thức equals và hashCode trên các đối tượng stub chỉ cần nhìn vào vị trí của các đối tượng máy chủ. Phương thức equals cho rằng hai stub bằng nhau nếu chúng chuyển đến đối tượng cùng máy chủ. Hai stub đề cập
45 Lập Trình Hệ Thống Với Java – Tìm hiểu lập trình phân tán trong Java
tới các đối tượng máy chủ khác nhau là không bao giờ bằng nhau, ngay cả khi những đối tượng đó có nội dung giống hệt nhau. Tương tự như vậy, các mã băm chỉ được tính toán từ định danh đối tượng.
Tóm tắt: ta có thể sử dụng các đối tượng stub trong các bộ và các bảng băm, nhưng ta phải nhớ rằng kiểm tra tính bằng nhau và băm không tính đến bản kê khai nội dung của các đối tượng từ xa.