Java 闭包中的自别名

Java 闭包中的自别名,java,coding-style,Java,Coding Style,我在java代码中经常使用闭包,因为项目要求将“this”别名包含到所有实例字段和方法中,所以我使用“self”别名引用外部范围实例变量,以避免代码的丑陋。f、 例: class SomeStrategyWithLongNameClass implements ... { private final SomeStrategyWithLongNameClass self = this; private SomeService someService; public F

我在java代码中经常使用闭包,因为项目要求将“this”别名包含到所有实例字段和方法中,所以我使用“self”别名引用外部范围实例变量,以避免代码的丑陋。f、 例:

class SomeStrategyWithLongNameClass implements ... {

    private final SomeStrategyWithLongNameClass self = this;

    private SomeService someService;

    public Function<...> someMethod() {
         return new Function<>() {
             @Override 
             public Result apply(Argument x) {
                 ....
                 SomeVar var = self.someService.execute(...);
                 ....
                 return result;
             }
         }
    }
}
class SomeStrategyWithLongNameClass实现。。。{
私人最终SomeStrategyWithLongNameClass self=this;
私人服务;
公共函数方法(){
返回新函数(){
@凌驾
公共结果应用(参数x){
....
SomeVar=self.someService.execute(…);
....
返回结果;
}
}
}
}
我知道也可以使用“
SomeStrategyWithLongNameClass.this
”引用实例字段,但在我看来,这只会污染代码,使其更难阅读

我突然被告知,在没有任何解释的情况下,停止使用“自我”别名,坚持使用“Class.this”模式


有人能告诉我这有什么确切的原因吗?

事实上,所讨论的项目在任何地方都有使用
这个
限定词的规则,这已经说明了它所采用的文化和纪律。显然,简洁并不是最重要的,但是对于Joe开发者来说,显而易见和熟悉才是最重要的。不要低估这些原则在大型企业项目中的价值


您已经引入了一个自己的约定,现在每个人都必须遵循该约定才能拥有一致的代码库。未能正确实现它将导致错误或bug。这个成语的潜在价值被潜在的长期损害所抵消。

你可能应该问问告诉你停止使用它的人。@Kayaman我试过了,但没有得到答案:)是的。它是。
self
极大地降低了代码的可读性,我需要在每次阅读您的代码时验证类型
self
。对于
SomeStrategyWithLongNameClass.this
,这是不言自明的。