Mam klasę "A", która jest "możliwa do uruchomienia", a ja tworzę nowe obiekty z obiektów unmarshallers języka Java. Wątek MainGUI próbuje uzyskać dostęp do tych instancji za pomocą metody get(), która jest już w klasie "A". Instancje, które utworzyłem w klasie A, zrobiłem je statyczne, aby były dostępne na zawsze, ale problem, gdy otrzymam nową kompletną instancję, która ma inne właściwości, muszę porównać nową instancję z poprzednimi danymi i zachować nowy.Najlepszy sposób przekazywania obiektów między klasami w różnych wątkach?
Czy istnieje lepszy sposób lub projekt tego problemu?
Jak uzyskać wystąpienia klasy "A", które są tworzone w czasie wykonywania bez ustawiania ich w statystykach?
Przykładowy kod:
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();
}
Co masz na myśli przez "poprzednie dane i zachować nowe"? Czy zastępujesz instancję? –
OP oznacza, że chce zachować stan ostatniego obiektu (dla porównania) i nowy, a także – Freak
czy możesz podać fragmenty kodu? –