Ho una classe "A" che è "eseguibile" e creo nuovi oggetti fuori da unmarshaller Java. Il thread MainGUI tenta di accedere a tali istanze da un get() che è già nella classe "A". Le istanze che ho creato in classe A, li ho resi statici, in modo che fossero disponibili per sempre, ma il problema quando ottengo una nuova istanza completa che ha proprietà diverse, devo confrontare la nuova istanza con quella precedente e mantenere quello nuovo.Il modo migliore per passare oggetti tra classi in thread diversi?
Esiste un modo migliore per progettare il problema?
Come posso ottenere le istanze di Classe "A" che vengono create in fase di runtime senza renderle statiche?
codice di esempio:
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();
}
Che cosa intendi per "dati precedenti di uno e mantenere quello nuovo"? Stai sostituendo l'istanza? –
OP significa che desidera mantenere lo stato dell'ultimo oggetto (per il confronto) e quello nuovo – Freak
puoi fornire frammenti di codice? –