Java中是否有一个通用或标准的注释用于定义尚未实现的方法?
因此,例如,如果我使用包含类似
之类的库的pre-alpha版本@NotImplementedYet
public void awesomeMethodThatTotallyDoesExactlyWhatYouNeed(){ /* TODO */ }
尝试拨打awesomeMethodThatTotallyDoesExactlyWhatYouNeed
时,我会收到编译时警告?
答案 0 :(得分:16)
您可能希望在运行测试时使用UnsupportedOperationException并检测尚未实现的调用方法。
答案 1 :(得分:2)
您可以创建自己的注释。使用运行时保留策略,您可以配置目标构建,以便在必要时查找此批注。
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({
ElementType.ANNOTATION_TYPE,
ElementType.METHOD,
ElementType.CONSTRUCTOR,
ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Unimplemented {
boolean value() default true;
}
答案 2 :(得分:1)
答案 3 :(得分:1)
不,没有针对尚未实现的方法的标准注释。
但是,JDK中有一个更通用的注释,用于标记不鼓励开发人员使用的API,并且Java编译器本身在使用时会发出警告。我说的是@Deprecated
,许多开发人员仅将其视为“宣布删除”。但是,JDK文档中的相关文章(例如Java 7和Java 9)列出了几个示例用例,其中只有一个涉及删除:
API很危险(例如
Thread.stop
方法)。有一个简单的重命名(例如,将AWT
Component.show/hide
替换为setVisible
)。可以使用更新更好的API。
已弃用的API将被删除。
我认为您的案件“尚未实施”肯定会朝着相同的方向发展。此外,如果该方法始终为throw a NotYetImplementedException
,则它甚至适合示例“ API危险”。
因此,您需要做的是以下事情:
@Deprecated
添加到方法中@deprecated
Javadoc来说明背景-Xlint:deprecation
调用编译器,以便它发出警告。