1
我正在使用naga來執行一些異步套接字編程。如何將任意數據與Java中的對象關聯
但是我需要能夠將任意數據附加到Socket對象。
比如我有一些代碼,像這樣:
service = new NIOService();
// Server is JSONObject
NIOSocket socket = service.openSocket(Server.getString("ip"), Server.getInt("port"));
??? Add mydata to socket
socket.listen(observer); // See class below
System.out.println(socket.mydata);// get new data
public static class Observer extends SocketObserverAdapter {
//Called when Socket makes connection
@Override
public void connectionOpened(NIOSocket socket) {
System.out.println(socket.mydata); // get data
socket.mydata = "yay!";// set data
}
}
我的問題是,我需要都得到和在Observer.connectionOpened
回調套接字對象上設置數據,並能夠在稍後訪問它。
我意識到可能沒有辦法只是將數據添加到對象中,但將數據與對象關聯的最佳方式是什麼,以便我可以傳遞它並仍然可以訪問(並修改)數據?
我總是可以重新編譯類代碼以將變量添加到類中,但這似乎很駭人,我試圖遠離。
注意:我對Java編程相當陌生,但對一般編程不太熟悉。
不幸的是,我必須傳遞該對象,但第二個選項將工作得很好。使用Map vs HashMap有什麼好處嗎? (我認識到HashMap就像是一個子類或者排序......效率更高嗎?) – korylprince
'Map'是接口,'HashMap'是實現。還有其他的實現像'TreeMap',但它們中的大多數可能不適合'Socket's。 –
謝謝!我得到了一切工作! – korylprince