Ayúdame a entender cómo funcionan las variables en Java

Tengo problemas para entender cómo funcionan las variables privadas y públicas. Estoy tratando de llenar la myStorage.outStringvariable desde myThread. Pero parece que no puedo ver el setInStringmétodo desde myThread. Aquí está mi ejemplo:

public class CT63_Console extends MIDlet {
    public Storage myStorage;
    public void startApp() {
        this.myStorage = new Storage();
    }
}

public class storage{
    private String[] outString;

    public Storage(){
        AClass myThread = new AClass();
        myThread.start();
    }
    public void setInString(String sendString){
        this.outString = sendString; //push seems not to be supported by MIDP
    }
}

public class AClass{
    public void run(){
        myFunction("write this into Storage var outString");
    }

    private myFunction(myString){
        myStorage.setInString(myString);
    }
}

¿Qué debo hacer para establecer la variable y por qué me equivoco?

Respuesta 1

Estás intentando acceder myStoragesin tener una referencia a él. Puede pasar esta referencia cuando cree la instancia de AClass.

Además, está intentando asignar una Cadena a una matriz de Cadenas que no se puede hacer.

public class Storage{
    private String outString;

    public Storage(){
        AClass myThread = new AClass(this);
        myThread.start();
    }
    public void setInString(String sendString){
        this.outString = sendString; //push seems not to be supported by MIDP
    }
}

public class AClass {
    Storage myStorage;

    public AClass(Storage s) {
        this.myStorage = s;
    }

    public void run(){
        myFunction("write this into Storage var outString");
    }

    private myFunction(String myString) {
        myStorage.setInString(myString);
    }
}
Respuesta: 2

Para un proyecto escolar, tengo que crear un sistema distribuido a partir de una aplicación independiente. Estamos usando RMI para la comunicación, pero nos encontramos con algunos problemas. El servidor que creé comienza bien, ...

Tengo este problema al usar j2me con eclipse y eclipseme: cuando comienzo a ejecutar la aplicación, no hace nada y obtengo este resultado ... Advertencia: Ejecutar JAM, ignorando todas las demás opciones (pero "...

Tengo el siguiente hilo que acepta conexiones entrantes en un puerto específico: public class ClientThread implementa Runnable {ServerSocket serverSocket; Socket clientSocket; En t ...

en Java, supongamos que tengo un archivo de texto con n filas, ¿es posible escribir y reemplazar solo la fila x? o reescribo todas las filas para editar alguna fila? Parece que he usado el archivo RandomAccess para ...