...
public WebServer() {
vertx = Vertx.vertx();
router = Router.router(vertx);
}
public void start(int port) {
vertx.createHttpServer().requestHandler(router::accept).listen(port);
}
public void start() {
start(8080);
}
...
...
public WebServer() {
this.vertx = Vertx.vertx();
this.router = Router.router(this.vertx);
}
public void start(int port) {
this.vertx.createHttpServer().requestHandler(this.router::accept).listen(port);
}
public void start() {
this.start(8080);
}
...
当然还有一种混搭风
1
rim99 2018-01-23 13:24:04 +08:00 via Android
我喜欢不省略,可以明确的看出这是个实例属性
|
2
coolcfan 2018-01-23 13:27:42 +08:00 via Android
看具体代码规范,比如有的项目会要求把所有 private field 名字以下划线开头,而 protected 和 public 的不用,此时 private 的就不写 this,另外两个写……
|
3
lizon 2018-01-23 13:34:42 +08:00
遵循团队规范
自己的项目随意,反正 IDE 能跳转,怎么写是个人审美问题 |
4
boywang004 2018-01-23 13:36:31 +08:00
我的原则是,以提高可读性为优先。
大多数情况下,如果省略和不省略是相同含义的话,倾向是省略,减少冗余,以便减少阅读干扰。除非特殊场景下需要强调的。 具体到 this 这个地方,一般尽量避免本地变量遮盖 field 变量(我们的 checkstyle 配置是除了 setter 以外如果出现遮盖直接检查失败),就避免了 99%必须要用到 this 的场景。 |
5
yulitian888 2018-01-23 13:48:19 +08:00
如果使用某些重构工具\插件的情况下,显式声明会更安全,因为工具不一定能准确识别 this 还是 base,甚至继承好几层的情况下 base 都不足以表达了,你敢不加前缀?
|
6
aristotll 2018-01-23 13:56:15 +08:00
不省略 个人认为
|
7
paragon 2018-01-23 14:50:23 +08:00
不用 跟匈牙利命名法一样 现代 IDE 都会标记颜色的,
|
9
Bigears 2018-01-23 14:54:26 +08:00
好习惯是不省略
|
10
mosliu 2018-01-23 15:06:00 +08:00
我一般习惯 :
属性加,容易识别和区分 即 this.vertx = Vertx.vertx(); 而函数省略。即 start(8080); 所谓的混搭风。 |
11
WispZhan 2018-01-23 15:06:46 +08:00
带"this."好,成员域一目了然。
|
12
xia0pia0 2018-01-23 15:17:30 +08:00
不省略好,这样用其他开发语言的人一眼也能看出来。
|
13
doubleflower 2018-01-23 16:36:53 +08:00
不省略可读性更高
|
14
Tneciv 2018-01-23 16:43:06 +08:00
习惯了 this 和 super 都不省略
|
15
noe132 2018-01-23 18:12:53 +08:00 via Android
写 JavaScript 表示类方法都要自己在方法体第一行加
const self = this 然后所有实例属性用 self 访问 |
16
yaoliyc 2018-01-23 18:29:35 +08:00 via iPhone 1
爱省略不省略,风格统一,自圆其说即可。
|
17
ZSeptember 2018-01-23 18:52:51 +08:00
省略,看着烦。
|
18
searene 2018-01-23 19:38:13 +08:00
对于这种字段 intellij 里面会用特别的颜色标出,所以即使不加也不影响代码的阅读,所以我觉得加不加都无所谓。
|
19
evilWill 2018-01-23 19:39:40 +08:00
除了自动生成的 setting() 中带 this 其余都省略
|
20
workwonder 2018-01-23 20:06:24 +08:00 via Android
不带 this 感觉像方法内部的局部变量
|
21
zts1993 2018-01-23 20:19:52 +08:00
其实这种问题不会影响代码质量。。至少不是不属于关键问题
毕竟很多时候不写 this 是错误的。 |
22
Ziav 2018-01-23 20:19:53 +08:00
不省略。
|
23
20015jjw 2018-01-24 05:48:21 +08:00 via Android
用 m
|
24
laxenade 2018-01-24 08:01:48 +08:00
写 this 便于 IDE 补全(雾
|
25
corningsun 2018-01-24 14:30:14 +08:00 1
特别去找了一下。
Google Java 编程规范 和 阿里巴巴 Java 编程规范 都没有提到这个问题。。。。 但是从一些示例和开源代码,发现 混搭的还是多 Oracle Java Language Specification: https://docs.oracle.com/javase/specs/jls/se9/html/jls-15.html#jls-15.8.3 阿里巴巴 Java 开发手册(纪念版): https://yq.aliyun.com/articles/69327 Doubble 源码: https://github.com/alibaba/dubbo/blob/master/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/filter/CacheFilter.java JDK 源码:String ```java public String(String original) { this.value = original.value; this.hash = original.hash; } public int length() { return value.length; } ``` Google Java Style Guide: https://google.github.io/styleguide/javaguide.html 总结下: 构造器和 setter 方法中使用 this 其他方法中可以不用 |
26
zhazi 2019-03-21 08:54:21 +08:00 via Android
构造和 g&s 有 this 因为是生成的
|