当前正在使用Spring,并且我一直在学习可用于帮助提高代码可读性的方法,其中一个示例是用易于理解的方法调用替换复杂的条件。例如:
private void myMethod(){
//Bad
if(userAge < MIN_AGE){
//logic
}
//Good
if(userTooYoung()){
//logic
}
}
private boolean userTooYoung(){
return userAge < MIN_AGE;
}
我的问题是:在创建自定义批注以表明userTooYoung只是在帮助可读性的时候值得吗?例如:
@Assistant
private boolean userTooYoung(){
return userAge < MIN_AGE;
}
我真的想不出@Assistant批注可以提供的另一个功能,因此,这引出了一个问题,它真的值得吗?
编辑:
我一直在研究@Assistant批注的想法,并提出以下建议:
定义:
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)
public @interface Assistant {
enum With {
CONDITIONAL_LOGIC, CONSTRUCTION_LOGIC
}
With help() default With.CONDITIONAL_LOGIC;
}
用法:
@Assistant(help = Assistant.With.CONDITIONAL_LOGIC)
最佳答案
您要征求意见。在某种程度上,我同意tsolakp。太多带有模糊名称的注释会降低可读性。同时,如果您需要标记您在许多地方所做的事情而您所做的事情并不明显,那么仅用于可读性的自定义注释确实有意义。例如,谷歌番石榴提供@VisibleForTesting批注。当应该将私有方法设置为默认范围时可以使用它,以便可以对其进行单元测试。当客户需要全面的单元测试时,我会使用很多时间。
就您而言,它并没有增加任何清晰度,而且名称也不是很有意义。
关于java - 创建自定义注释以表明一种方法仅在提高可读性时值得吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47895603/