Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis/Java/莴苣-如何访问上下文对象_Java_Redis_Lettuce - Fatal编程技术网

Redis/Java/莴苣-如何访问上下文对象

Redis/Java/莴苣-如何访问上下文对象,java,redis,lettuce,Java,Redis,Lettuce,我正在使用Redis发布/订阅模式,从一个类(myClass)为订阅者添加一个侦听器。我需要从侦听器线程访问设置侦听器的线程的变量/对象,以便处理消息。可能吗?还是我需要改变方法 这部分代码显示了侦听器设置,以及我需要从何处访问myClass变量 import io.lettuce.core.*; import io.lettuce.core.api.StatefulRedisConnection; import io.lettuce.core.pubsub.StatefulRedisPubSu

我正在使用Redis发布/订阅模式,从一个类(myClass)为订阅者添加一个侦听器。我需要从侦听器线程访问设置侦听器的线程的变量/对象,以便处理消息。可能吗?还是我需要改变方法

这部分代码显示了侦听器设置,以及我需要从何处访问myClass变量

import io.lettuce.core.*;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.pubsub.StatefulRedisPubSubConnection;
import io.lettuce.core.pubsub.RedisPubSubListener;
import io.lettuce.core.pubsub.api.sync.RedisPubSubCommands;


public class myClass implements IStrategy {
    private IEngine engine = IEngine.getEngine();
    private int tagCounter = 0;
    private double[] ma1 = new double[Instrument.values().length];
    private IConsole console;


    public void mySubscription(String channel){


        RedisClient redisClient = RedisClient.create("redis://password@<myip>:6379/0");
        StatefulRedisPubSubConnection<String, String> connection = redisClient.connectPubSub();


        connection.addListener(new RedisPubSubListener<String, String>() {
            @Override
            public void message(String channel, String message) {
                // I need to access myClass instance objects here
            }

.....

导入io.莴苣.core.*;
导入io.莴苣.core.api.StatefulRedisConnection;
导入io.莴苣.core.pubsub.StatefulRedisPubSubConnection;
导入io.莴苣.core.pubsub.RedisPubSubListener;
导入io.莴苣.core.pubsub.api.sync.redispubsub子命令;
公共类myClass实现IStrategy{
私有IEngine引擎=IEngine.getEngine();
专用整型标记计数器=0;
私有双精度[]ma1=新双精度[Instrument.values().length];
专用IConsole控制台;
public void mySubscription(字符串通道){
RedisClient RedisClient=RedisClient.create(“redis://password@:6379/0");
StatefulRedisPubSubConnection连接=redisClient.connectPubSub();
connection.addListener(新的RedisPubSubListener(){
@凌驾
公共无效消息(字符串通道、字符串消息){
//我需要在这里访问myClass实例对象
}
.....
免责声明:从1到10,我的Java技能是2


谢谢

是的,这是可能的。你尝试访问它们了吗?你有什么错误吗?请看Thank@EdgarDomingues,你是对的,它工作了,我看到Intellij Idea是作为错误方法突出显示的,来自封闭类成员,但现在工作正常。我肯定是做错了什么,或者有一些我不知道的打字错误。关于