java一个很简单的问题

图片说明图片说明
图片说明

完整的代码如上
MqttCallback 是接口
里面的messageArrived方法里收到服务器的消息,我想将里面的RSSI值提出来作为公共变量,以便算法调用;

目前试过的方法:
1)加public :不可行,messageArrived里面的变量只能用final修饰。
2)设置全局变量用来存储局部变量:不可行,如图,我定义了全局变量asd,将所需数据abc存进了这个全局变量,但asd的值只有在方法里才是我想要的值,在另外一个类里面调用这个全局变量,就不行了。不知道是不是我的方法不对。

暂未尝试过的方法:
1)反射
2)全局队列
这两种方法还没弄懂,之前提问有人回答过,但具体代码不知道该如何实现。

之前也提过几次问,一直没人给出有效方法,我是新手,才学几天java(真的不怎么会),因为本科毕设要用这一段程序,谁能帮我解决问题(具体点)我就采纳谁。

解释一下:
声望为负是因为一个id为caozhy的大佬,莫名其妙说我删他回答,不给他采纳。首先,我并没有删任何东西,也不知道该怎么删(因为毕设才入这个论坛),其次,他的回答也没有任何价值。我只想说,骗人死全家,就一点积分,我完成了毕设根本就不在乎,以后也不从事代码工作。不想再撕了。

再贴上我之前尝试的方法2)
图片说明

输出一直为初值0
而我想要的数据是这样的
图片说明

            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);
               ClientMQTT.asd=abc;
               System.out.println(ClientMQTT.asd);
            }

如上