java接口不推荐的方法是否必须实现?

l0oc07j2  于 2021-06-10  发布在  Hbase
关注(0)|答案(3)|浏览(557)

我正在更新的hbase代码 0.98.101.1.5 ,但编译器显示mywalobservator没有实现原始接口 WALObserver 不再。
编译器输出:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-
plugin:3.1:compile (default-compile) on project observer: Compilation failure
[ERROR] /Users/zhangsong.zs/git/HBaseObserver/src/main/java/com/gavin/observer/
DataSyncWALObserver.java:[39,8] com.gavin.observer.DataSyncWALObserver
 is not abstractand does not override abstract method  
postWALWrite(org.apache.hadoop.hbase.coprocessor.ObserverContext<? extends org.apache.hadoop.hbase.coprocessor.WALCoprocessorEnvironment>,
org.apache.hadoop.hbase.HRegionInfo,org.apache.hadoop.hbase.wal.WALKey,
org.apache.hadoop.hbase.regionserver.wal.WALEdit) in 
org.apache.hadoop.hbase.coprocessor.WALObserver

因此,在的同一个接口中添加了一些新的api 1.1.5 版本,旧的API不受欢迎。旧代码不再工作,这对开发人员不利。
所以我想问:我是否还必须实现那些已经被弃用的旧接口方法?

krcsximq

krcsximq1#

是的,您必须实现不推荐使用的接口方法。但是,你可以让他们扔 UnsupportedOperationException 向呼叫者发出信号,表示它们实际上没有实现。

uinbv5nw

uinbv5nw2#

是的,你必须。不推荐使用表示不建议使用。任何实现都必须实现它。

xoshrz7s

xoshrz7s3#

它是一种代码维护技术。
不推荐使用的方法是类/接口的一部分。
您可以选择在派生类中的此类方法内部引发异常。
以下是一些背景:
通常,如果发现接口函数是冗余的/不可用的,则将其标记为已弃用。
我们可以选择如何在ide中处理不推荐的注解编译/错误报告。

相关问题