gpt4 book ai didi

java - 不是抽象的,不会覆盖抽象方法 punctuate(long)

转载 作者:行者123 更新时间:2023-12-01 16:47:26 25 4
gpt4 key购买 nike

我有以下接口(interface)实现:

package io.khinkali.topology;

import org.apache.kafka.streams.processor.*;

public class PathsProcessor<K, V> implements ProcessorSupplier {

@Override
public Processor get() {
return new Processor() {

private StateStore state;

@Override
public void init(ProcessorContext context) {
this.state = context.getStateStore("myProcessorState");
context.schedule(1000, PunctuationType.WALL_CLOCK_TIME, System.out::println);
}

@Override
public void process(K key, V value) {

}

@Override
public void close() {

}
};
}
}

编译器提示:

[error] /home/developer/Desktop/microservices/bary-paths-stream/src/main/scala/io/khinkali/topology/PathsProcessor.java:9:1: <anonymous io.khinkali.topology.PathsProcessor$1> is not abstract and does not override abstract method punctuate(long) in org.apache.kafka.streams.processor.Processor
[error] return new Processor<K, V>() {
[error] (compile:compileIncremental) javac returned non-zero exit code
[error] Total time: 2 s, completed Nov 21, 2017 9:46:47 AM

处理器如下所示:

public interface Processor<K, V> {

void init(ProcessorContext context);
void process(K key, V value);
@Deprecated
void punctuate(long timestamp);
void close();
}

我做错了什么?

最佳答案

方法:

@Deprecated
void punctuate(long timestamp);

即使已弃用,仍然需要实现。

编辑:已弃用仅意味着该方法不应在新代码中使用,因为计划将来删除它。该注释旨在警告开发人员这一事实。然而,只要该方法存在于接口(interface)中,它就必须由任何实现来实现。我同意这可能会令人困惑:您不应该使用该方法,同时您必须实现它。这就是开发者的生活。

关于java - 不是抽象的,不会覆盖抽象方法 punctuate(long),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com