[英]Java interface's deprecated methods must be implemented or not?
我更新的HBase的代碼0.98.10
到1.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
因此,在1.1.5
版本的同一接口中添加了一些新的API,並且不贊成使用舊的API。 舊代碼不再起作用,這對開發人員不利。
所以我想問:我是否仍然必須實現已經過時的舊接口方法?
是的,您必須實現不推薦使用的接口方法。 但是,允許您使它們拋出UnsupportedOperationException
以向調用者發出信號,表明它們實際上並未實現。
是的,你必須。 已棄用意味着不建議使用。 任何實現都必須仍然實現它。
它是代碼維護技術。
這里是一些背景:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.