請彭老師進來,切實解決一下我的一個困惑,關於本書

zc0000發表於2004-09-22
我在閱讀本書第一章時,遇到一個問題,這個問題非常使我困惑,希望彭老師或其他網友給予具體指點!

第一章37頁,那個StringType程式碼,實現Linkable介面:

public class StringType implements Linkable {

private String content = null;
private int msgType;
private ByteBuffer byteBuffer = null;

public StringType(int msgType) {
this.msgType = msgType;
}

public String getContent() {
return content;
}
public void setContent(String content){
this.content = content;
}

public void accpet(QueueWorker worker) throws Exception {
worker.run(msgType, this);
}

public OutputStream getOutputStream() {
OutputStream outputStream = null;
try {
outputStream = DataTypeHelper.writeString(content);
} catch (Exception ex) {
}
return outputStream;
}

public void setInputStream(InputStream in) {
try {
this.content = DataTypeHelper.getString(in);
} catch (Exception ex) {
}
}

}


按照彭老師的思想,為了便於傳輸,Message Queue中只存放 ByteArrayStream物件,所以把其他物件放入MQ中時要先將該物件包裝成
ByteArrayStream物件,然後由訪問者操作該包裝後的物件,將它放入Queue.
這裡我翻閱了很多資料卻無法弄明白:這"包裝"究竟是怎麼實現的??我好象找不到這樣的方法,能把一個普通的任意的物件轉變成為ByteArrayStream;
而彭老師介紹的這種方法好象和 ObjectInputStream,ObjectOutputStream中的readObject(),writeObject()又不太相同,所以,這有些讓我束手無策.具體地說,就是這段程式碼中那個 DataTypeHelper 類,究竟是怎麼實現的?它的這些靜態方法;以一個物件為引數,可以得到該物件包裝後的ByteArrayStream,這其中究竟是什麼細節??

我的JAVA水平比較初淺,所以,在這裡希望彭老師或是其他網友,能抽空給我比較具體的指點!!給出一些示範程式碼!而不是泛談一些大概的思想!太概括的東西對於初學者並沒有太大用處!這個問題確實是非常讓我困惑,急需獲得解答,希望彭老師關注一下,謝謝!!

相關文章