wth19970529 2019-04-16 11:10 采纳率: 0%
浏览 1652

java怎么在另外一个类里面调用一个无返回值方法里面的局部变量呢?

在mqtt订阅代码里面,我想将订阅的消息里面的部分内容提取出来作为另外一个方法里的变量。但是mqtt的messagearrived方法默认是无返回值的,所以想知道该怎么调用一个无返回值方法的局部变量。

public static void subscribe() {
try {
MqttClient client = new MqttClient(serviceURI, clientID, persistence);
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
System.out.println("订阅者连接丢失...");
System.out.println(cause.getMessage());
}

            @Override
            public void  messageArrived(String topic, MqttMessage message) {

                String mes =message.toString();
                String rssi = mes.substring(mes.indexOf("rssi")+7,mes.indexOf("ibeaconTxPower")-2);
                int abc = Integer.parseInt(rssi);
                System.out.println("第一个网关的RSSI值: "+Integer.parseInt(rssi));
            }
            @Override
            public void deliveryComplete(IMqttDeliveryToken token) {
            }
        });

        MqttConnectOptions connectOptions = new MqttConnectOptions();
        connectOptions.setUserName(username);
        connectOptions.setPassword(password.toCharArray());
        connectOptions.setCleanSession(false);
        //订阅者连接订阅主题
        client.connect(connectOptions);
        client.subscribe(topic, qos);
        System.out.println("订阅者连接状态: " + client.isConnected());
    } catch (MqttException e) {
        e.printStackTrace();
    }

}

想要获取messagearrived里的rssi,调用到另外一个类里面

  • 写回答

2条回答

  • 强化脑细胞 2019-04-16 11:26
    关注

    定义全局变量,用于存储局部变量,之后通过对象调用。

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置