2013-04-15 6 views
5

मेरे पास कक्षा "ए" है जो "रननेबल" है और मैं जावा अनमशैलर्स से नई ऑब्जेक्ट्स बना देता हूं। मेनगुई थ्रेड उन उदाहरणों को एक प्राप्त() से एक्सेस करने का प्रयास करता है जो पहले से ही "ए" वर्ग में है। कक्षा ए में मैंने जो उदाहरण बनाए हैं, मैंने उन्हें स्थिर बना दिया है, ताकि वे हमेशा के लिए उपलब्ध हो सकें, लेकिन समस्या जब मुझे एक नया पूर्ण उदाहरण मिलता है जिसमें अलग-अलग गुण होते हैं, तो मुझे पिछले एक डेटा के साथ नए उदाहरण की तुलना करना होगा और रखना होगा नए वाला।विभिन्न धागे में कक्षाओं के बीच वस्तुओं को पारित करने का सबसे अच्छा तरीका?

वहाँ एक बेहतर तरीका है या कि समस्या के लिए डिजाइन है?

मैं इन्हें स्टैटिक्स किए बिना रनटाइम पर बनाए जाते हैं क्लास 'ए' के ​​उदाहरण मिल सकता है?

नमूना कोड:

public class SOAPMessagesFactory { 

    private static GetCameraImageResponse    getCameraImageResponse; 

// process here the msgs in another thread, not shown here in that snipped 
    if (messageTag.equalsIgnoreCase("GetCameraImageResponse")) { 
       try { 
        JAXBElement<GetCameraImageResponse> cameraImageResponse = unmarshaller.unmarshal(SoapBodyReader, GetCameraImageResponse.class); 
        getCameraImageResponse = cameraImageResponse.getValue(); 

       } catch (Throwable ex) { 
        ex.printStackTrace(); 
       } 

      } 

public GetCameraImageResponse getCameraImageResponse() { 

    if (getCameraImageResponse != null) { 
     return getCameraImageResponse; 
    } else { 
     return null; 
    } 

} 
    // in main gui 

public void UpdateGUI() { 

     GetCameraImageResponse cameraImageResponse = messageFactory.getCameraImageResponse(); 

} 
+0

क्या आप 'पिछले के एक डेटा मतलब है और नई one' रहते हो? क्या आप उदाहरण बदल रहे हैं? –

+0

ओ पी का मतलब है कि वह भी पिछले वस्तु (तुलना के लिए) और नया एक की स्थिति को बनाए रखना चाहते – Freak

+0

आप कोड के टुकड़े प्रदान कर सकते हैं? –

उत्तर

0

आप प्रकार 'ए' मुख्य में से एक संदर्भ की घोषणा और अन्य धागा है कि गुजर सकता है। अन्य थ्रेड में संचालन करें और संदर्भ के लिए ए के नए उदाहरण को असाइन करें। कुछ इस

A aVariable; 
Thread t = new Thread(new MyThread(aVariable)); 
t.start(); 
t.join(); 
populateGUI(aVariable); 
संबंधित मुद्दे

 संबंधित मुद्दे