java.rmi.MarshalledObject 是一个 java 类,MarshalledObject 包含一个字节流,其中包含赋予其构造函数的对象的序列化表示形式,所包含的对象使用与编组和解组参数相同的序列化语义进行序列化和反序列化。
签名
public final class MarshalledObject<T> extends Object implements Serializable
构造函数
MarshalledObject(T object) - MarshalledObject(T object) 初始化 MarshalledObject 类的新实例,其中包含所提供对象的当前状态的序列化表示形式。
MarshalledObject m = new MarshalledObject(T object);
Note: m is the new instance of MarshalledObject class.
方法
MarshalledObject 类包含三个名为 - 的方法
- hashCode()
- get()
- equals(Object object)
让我们分别讨论该类的所有三个方法,以便更好地理解。开始了:
1.MarshalledObject.hashCode()方法
它是 java.rmi.MarshalledObject 类的一部分,hashCode() 方法将返回与此 MarshalledObject 关联的哈希代码。
用法:
public int hashCode().
方法返回类型:hashCode() 方法具有 int 返回类型,并将返回此 MarshalledObject 的哈希码
如何调用hashCode()方法
步骤1:首先创建MarshalledObject的实例并传递要序列化的对象。
MarshalledObject marshalledObject = new MarshalledObject(object);
步骤2:现在调用hashCode()方法来获取这个marshalledObject的哈希码
int code = marshalledObject.hashCode();
例子:Java程序使用MarshalledObject.hashCode()方法获取哈希码
Java
// Java program to
// get the hash code
import java.io.*;
import java.rmi.*;
// create a serialized class
class tmp implements Serializable {
public int x;
}
class GFG {
public static void main(String[] args)
{
// invoke getHashCode
// method to get hashCode
getHashCode(new tmp());
}
@SuppressWarnings("unchecked")
public static void getHashCode(tmp t)
{
try {
MarshalledObject marshalledObject = new MarshalledObject(t);
// invoke hashCode method for this
// marshalledObject to get hash code
System.out.println("Hash code for this marshalled object is " + marshalledObject.hashCode());
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
输出:
Hash code for this marshalled object is -571669764
2. MarshalledObject.get()方法
它是 java.rmi.MarshalledObject 类的一部分,get() 方法将返回所包含 marshalledObject 的新副本。
方法签名
public T get() throws IOException, ClassNotFoundException.
方法返回类型:get() 方法将返回所包含的 MarshalledObject 的副本。
参数:get()方法没有参数
Exception: get() 方法可能会抛出 IOException、ClassNotFoundException。
如何调用get()方法?
步骤1:首先创建MarshalledObject的实例并传递要序列化的对象。
MarshalledObject marshalledObject = new MarshalledObject(object);
步骤 2:现在调用 get() 方法来获取此 marshalledObject 的新副本。
Object obj = marshalledObject.get();
例子:Java程序使用MarshalledObject.get()方法获取MarshalledObject的副本
Java
// Java program to get
// copy of marshalledObject
import java.io.*;
import java.rmi.*;
// create a serialized class
class tmp implements Serializable {
public int x;
}
class GFG {
public static void main(String[] args)
{
// invoke get method to get
// copy of marshalledObject
get(new tmp());
}
@SuppressWarnings("unchecked")
public static void get(tmp t)
{
try {
MarshalledObject marshalledObject = new MarshalledObject(t);
// invoke get method for this
// marshalledObject to get copy
// of marshalled object
System.out.println("Copy marshalled object is " + marshalledObject.get());
System.out.println("Original marshalled object is " + t);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
输出:
Copy marshalled object is tmp@66cd51c3 Original marshalled object is tmp@63c12fb0
3.MarshalledObject.equals()方法
它是 java.rmi.MarshalledObject 类的一部分,equals() 方法会将这个 MarshalledObject 与另一个对象进行比较,如果两个序列化对象相同,则该方法将返回 true,否则返回 false。
方法签名
public boolean equals(Object obj).
方法返回类型:equals() 方法具有布尔返回类型,如果参数表示包含与此完全相同的对象序列化表示的MarshalledObject,它将返回 true。
方法参数:equals()方法有一个对象类型的参数。
如何调用equals()方法?
步骤1:首先创建MarshalledObject的实例并传递要序列化的对象。
MarshalledObject marshalledObjectOne = new MarshalledObject(object); MarshalledObject marshalledObjectTwo = new MarshalledObject(object);
步骤 2:现在调用 equals() 方法将 marshalledObject 与传递给 equals() 方法的参数进行比较。
boolean isSame = marshalledObjectOne.equals(marshalledObjectTwo);
例子:使用 MarshalledObject.equals() 方法比较此 MarshalledObject 的 Java 程序
Java
// Java program to compare
// two marshalled object
import java.io.*;
import java.rmi.*;
// create a serialized class
class tmp implements Serializable {
public int x;
}
class GFG {
public static void main(String[] args)
{
// invoke compare method to to
// compare the marshalled object
compare(new tmp(),new tmp());
}
@SuppressWarnings("unchecked")
public static void compare(tmp a,tmp b)
{
try {
MarshalledObject marshalledObjectOne = new MarshalledObject(a);
MarshalledObject marshalledObjectTwo = new MarshalledObject(b);
// invoke equals method for this
// marshalledObject to compare
// the marshalled object
System.out.println("marshalledObjectOne and marshalledObjectTwo are same : "
+ marshalledObjectOne.equals(marshalledObjectTwo));
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
输出:
marshalledObjectOne and marshalledObjectTwo are same : true
相关用法
- Java java.rmi.RMISecurityManager用法及代码示例
- Java java.rmi.Naming用法及代码示例
- Java java.io.BufferedInputStream.mark()用法及代码示例
- Java java.lang.reflect.AccessibleObject.getAnnotation()用法及代码示例
- Java java.lang.reflect.AccessibleObject.getAnnotations()用法及代码示例
- Java java.lang.reflect.AccessibleObject.getDeclaredAnnotations()用法及代码示例
- Java java.lang.reflect.AccessibleObject.isAccessible()用法及代码示例
- Java java.lang.reflect.AccessibleObject.setAccessible()用法及代码示例
- Java java.lang.reflect.Array.get()用法及代码示例
- Java java.lang.reflect.Array.getBoolean()用法及代码示例
- Java java.lang.reflect.Array.getByte()用法及代码示例
- Java java.lang.reflect.Array.getChar()用法及代码示例
- Java java.lang.reflect.Array.getDouble()用法及代码示例
- Java java.lang.reflect.Array.getFloat()用法及代码示例
- Java java.lang.reflect.Array.getInt()用法及代码示例
- Java java.lang.reflect.Array.getLength()用法及代码示例
- Java java.lang.reflect.Array.getLong()用法及代码示例
- Java java.lang.reflect.Array.getShort()用法及代码示例
- Java java.lang.reflect.Array.newInstance()用法及代码示例
- Java java.lang.reflect.Array.set()用法及代码示例
- Java java.lang.reflect.Array.setBoolean()用法及代码示例
- Java java.lang.reflect.Array.setByte()用法及代码示例
- Java java.lang.reflect.Array.setChar()用法及代码示例
- Java java.lang.reflect.Array.setDouble()用法及代码示例
- Java java.lang.reflect.Array.setFloat()用法及代码示例
注:本文由纯净天空筛选整理自harshsethi2000大神的英文原创作品 java.rmi.MarshalledObject Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。