如何从另一个类中获取布尔值?

我有一个 UDP 服务,可以告诉我们数字是否为“capicua”。我有一个带有布尔值的服务器类,该布尔值在存在或不存在时设置其值。当我从 Client 类打电话告诉我即使使用 getter、setter 或返回实际的 booelan 值我也不能接受的布尔值时,你怎么看?


//CLIENT CLASS

//TIPICO INFINITY LOOP

        while(true) {

            System.out.println("Introduce un numero de "

                    + "al menos 2 cifras para ver si son capicúas. ");


            //METEMOS EN OUT ALL CONTENT 

            out =intToByteArray(Integer.parseInt(introducirDatos("Numero : "))) ;

            //ESCAPE

            if(byteArrayToInt(out)== 0) {

                System.out.println("Cerramos conexión...");

                break;

            }

            System.out.println("Enviando " + out.length + " bytes al servidor");

            envio = new DatagramPacket(out, out.length, IPServer, port );

            socket.send(envio);

//-------------------------------------------------------------------

            recibo = new DatagramPacket(in, in.length);

            System.out.println("Esperando datagrama...");

            socket.receive(recibo);


            IPOrigin = recibo.getAddress();

            int originPort = recibo.getPort();

            System.out.println("Procedente de: " + IPOrigin + ":" + originPort);


            boolean capicua = Servidor.isCapicua();

            System.out.println(capicua);




        }

        socket.close();

class Servidor{

static boolean capicua = true;


while (true) {


            System.out.println("Esperando datagrama...");


            // CONSTUIMOS NUESTRO DATAGRAMPACKET CON LOS DATOS DEL ARRAY DE BYTES

            recibo = new DatagramPacket(in, in.length);

            // RELLENAMOS EL SOCKET CON ALL CONTENT FROM RECIBO

            socket.receive(recibo);

            }


}



慕虎7371278
浏览 150回答 1
1回答

HUH函数

您可以按如下方式使用单例类(您可以将单例类重命名为您想要的任何其他名称。)public class SharedValues{     private static SharedValues sharedValues = new SharedValues();     //will always return the same instance of this class     public static SharedValues getInstance() {        return sharedValues;     }     private boolean capicua;     public void setCapicua(boolean capicua)     {         this.capicua = capicua;     }     public boolean getCapicua()     {        return this.capicua;     }}然后在 Servidor 类和 Client 类中,执行以下操作:class Servidor {    SharedValues sharedValues = SharedValues.getInstance();    //make sure this while loop code is in a function    while(true)    {        if (numero == capicuar(numero)) {            sharedValues.setCapicua(false);        }    }}class Client {    SharedValues sharedValues = SharedValues.getInstance();    //make sure this while loop code is in a function    while(true)    {        boolean capicua = sharedValues.getCapicua();        System.out.println(capicua);    }}简单解释一下,单例类就是一个只能有一个实例的类。因此,SharedValues 类的同一个实例将被 Servidor 类和 Client 类访问。如果您因此将 Servidor 中的值设置为setCapicua(false),那么在类 Client 中,如果您调用getCapicua() ,您将把它设置为 false 。但是,您必须意识到,在客户端和服务器中,实例化是SharedValues sharedValues = SharedValues.getInstance();请不要使用SharedValues sharedValues = new SharedValues();这将提供类 SharedValues 的新实例,并且不会达到目的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java