Module java.rmi
Package java.rmi.server

# Class RemoteObject

java.lang.Object
java.rmi.server.RemoteObject

All Implemented Interfaces:
  `Serializable`, `Remote`

Direct Known Subclasses:
  `RemoteObjectInvocationHandler`, `RemoteServer`, `RemoteStub`

public abstract class RemoteObject extends Object implements Remote, Serializable
The `RemoteObject` class implements the `java.lang.Object` behavior for remote objects. `RemoteObject` provides the remote semantics of Object by implementing methods for hashCode, equals, and toString.

Since:
  1.1
See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`protected RemoteRef`
`ref`
The object's remote reference.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`RemoteObject()`
Creates a remote object.
`protected`
`RemoteObject(RemoteRef newref)`
Creates a remote object, initialized with the specified remote reference.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
Compares two remote objects for equality.
`RemoteRef`
`getRef()`
Returns the remote reference for the remote object.
`int`
`hashCode()`
Returns a hashcode for a remote object.
`String`
`toString()`
Returns a String that represents the value of this remote object.
`static Remote`
`toStub(Remote obj)`
Returns the stub for the remote object `obj` passed as a parameter.

### Methods declared in class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Field Details

### ref

protected transient RemoteRef ref
The object's remote reference.

## Constructor Details

### RemoteObject

protected RemoteObject()
Creates a remote object.

### RemoteObject

protected RemoteObject(RemoteRef newref)
Creates a remote object, initialized with the specified remote reference.

Parameters:
  `newref` - remote reference

## Method Details

### getRef

public RemoteRef getRef()
Returns the remote reference for the remote object.

Note: The object returned from this method may be an instance of an implementation-specific class. The `RemoteObject` class ensures serialization portability of its instances' remote references through the behavior of its custom `writeObject` and `readObject` methods. An instance of `RemoteRef` should not be serialized outside of its `RemoteObject` wrapper instance or the result may be unportable.

Returns:
  remote reference for the remote object
Since:
  1.2

### toStub

public static Remote toStub(Remote obj) throws NoSuchObjectException
Returns the stub for the remote object `obj` passed as a parameter. This operation is only valid after the object has been exported.

Parameters:
  `obj` - the remote object whose stub is needed
Returns:
  the stub for the remote object, `obj`.
Throws:
  `NoSuchObjectException` - if the stub for the remote object could not be found.
Since:
  1.2

### hashCode

public int hashCode()
Returns a hashcode for a remote object. Two remote object stubs that refer to the same remote object will have the same hash code (in order to support remote objects as keys in hash tables).

Overrides:
  `hashCode` in class `Object`
Returns:
  a hash code value for this object.
See Also:
  - `Hashtable`

### equals

public boolean equals(Object obj)
Compares two remote objects for equality. Returns a boolean that indicates whether this remote object is equivalent to the specified Object. This method is used when a remote object is stored in a hashtable. If the specified Object is not itself an instance of RemoteObject, then this method delegates by returning the result of invoking the `equals` method of its parameter with this remote object as the argument.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - the Object to compare with
Returns:
  true if these Objects are equal; false otherwise.
See Also:
  - `Hashtable`

### toString

public String toString()
Returns a String that represents the value of this remote object.

Overrides:
  `toString` in class `Object`
Returns:
  a string representation of the object.