Java 接口中已弃用的方法是否必须实现?

Al2*_*2O3 0 java api hbase interface deprecated

我正在将 HBase 代码更新为0.98.101.1.5但编译器显示 myWalObserver 不再实现原始接口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
Run Code Online (Sandbox Code Playgroud)

所以在版本相同的接口中添加了一些新的API 1.1.5,并且旧的API被弃用。旧代码不再起作用,这对开发人员不利。

所以我想问:我是否还必须实现已经弃用的旧接口方法?

Chr*_*ung 5

是的,您必须实现已弃用的接口方法。但是,您可以让它们抛出UnsupportedOperationException来向调用者发出信号,表明它们实际上并未实现。