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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。