gpt4 book ai didi

java - 闭包中的 self 别名

转载 作者:行者123 更新时间:2023-12-02 04:24:48 25 4
gpt4 key购买 nike

我在java代码中经常使用闭包,并且由于项目要求在所有实例字段和方法中包含“this”别名,我过去常常使用“self”别名来引用外部作用域实例变量,以便避免代码的丑陋。例如:

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;
}
}
}
}

我知道也可以使用“SomeStrategyWithLongNameClass.this”引用实例字段,但从我的角度来看,这只会污染代码,使其更难以阅读。

我突然被告知,没有任何解释,停止使用“self”别名并坚持“Class.this”模式。

谁能告诉我这是否有充分的理由?

最佳答案

事实上,相关项目规定在任何地方都使用 this 限定符,这一事实已经充分说明了它所采用的文化和纪律。显然,简洁并不是最重要的,但对 Joe Developer 来说显而易见和熟悉才是最重要的。不要低估这些原则在大型企业项目中的值(value)。

您自己引入了一个约定,现在每个人都必须遵循该约定才能拥有一致的代码库。未能正确实现将导致错误或错误。潜在的长期损害超过了该习语的潜在值(value)。

关于java - 闭包中的 self 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32329146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com