Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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
Java 实现没有接口类型参数的接口_Java_Apache Storm - Fatal编程技术网

Java 实现没有接口类型参数的接口

Java 实现没有接口类型参数的接口,java,apache-storm,Java,Apache Storm,ApacheStorm有一个带有非类型映射的接口 //org.apache.storm.topology.IBasicBolt public interface IBasicBolt extends IComponent { void prepare(Map stormConf, TopologyContext context); ... } 我想在抽象类中添加一个类型化映射 public abstract class MyClass implements IBasicBolt

ApacheStorm有一个带有非类型映射的接口

//org.apache.storm.topology.IBasicBolt
public interface IBasicBolt extends IComponent {
    void prepare(Map stormConf, TopologyContext context);
    ...
}
我想在抽象类中添加一个类型化映射

public abstract class MyClass implements IBasicBolt {
    @override
    public void prepare(Map<String, Object> stormConf, TopologyContext context) {
    }
}
有没有办法在不添加storm类的情况下做到这一点?

适用于这种情况,尽管在您的用例中可能不完全是您想要的。但这是一个值得了解的模式,可能会引导你朝着正确的方向前进

意图

将类的接口转换为客户端期望的另一个接口。Adapter允许由于接口不兼容而无法正常工作的类一起工作

范例

考虑目标接口,即您希望编程的目标接口:

public interface IMyBasicBolt {    
    void prepare(Map<String, Object> stormConf, String other);    
}
适配器BasicBoltAdapter的使用示例:

在您的案例中,没有严格要求将接口IMyBasicBolt用于您的目标接口。但是,在可能的情况下,编程到一个接口通常是好的。

适合这种情况,尽管在您的用例中可能不完全是您想要的。但这是一个值得了解的模式,可能会引导你朝着正确的方向前进

意图

将类的接口转换为客户端期望的另一个接口。Adapter允许由于接口不兼容而无法正常工作的类一起工作

范例

考虑目标接口,即您希望编程的目标接口:

public interface IMyBasicBolt {    
    void prepare(Map<String, Object> stormConf, String other);    
}
适配器BasicBoltAdapter的使用示例:

在您的案例中,没有严格要求将接口IMyBasicBolt用于您的目标接口。但在可能的情况下,编程到接口通常是好的

IBasicBolt basicBolt = new IBasicBolt() {

    @Override
    public void prepare(Map stormConf, String other) {
        System.out.println(stormConf.toString() + " " + other);
    }
};
Map<String, Object> map = new HashMap<>();
map.put("MapKeyTest", new Object());
IMyBasicBolt myBasicBolt = new BasicBoltAdapter(basicBolt);
myBasicBolt.prepare(map, "Test");