当前正在使用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/

10-10 18:29