在Java中使用this是一种不好的做法吗?
我只是好奇this
的用法,因为Android的示例代码和文档没有使用this
关键字(我喜欢相信Android工程师通常都很聪明,因此我把他们作为基础)。我只是好奇安卓工程师不怎么使用this
的根本原因
你可以在下面搜索框中键入要查询的问题!
我只是好奇this
的用法,因为Android的示例代码和文档没有使用this
关键字(我喜欢相信Android工程师通常都很聪明,因此我把他们作为基础)。我只是好奇安卓工程师不怎么使用this
的根本原因
# 1 楼答案
你怎么会这么认为?例如SDK coding style guide没有提到这一点,我在很多地方都看到了这一点。然而,遵循变量命名指南通常是不必要的,可以省略,通常情况下就是这样
当引用一个实例时,使用this关键字是为了清晰起见,但是正如文档中提到的,没有真正强制的样式,遵循命名规则就没有必要了
例如,一个完全有效的setter在命名之后,无论有没有这个,都可能是
注意,在第一个例子中,你可以,但不必使用这个。在第二种情况下你必须这样做,而第一种情况可能更接近于风格指南
# 2 楼答案
这主要是风格上的差异。我还没有看到关于它的好坏原因的争论。就我个人而言,我喜欢使用它,在一些情况下,你需要使用它
例如,如果你有一个匿名的内部类,想要调用父类的方法,你需要
this
。例如:使用
this
的另一个原因是如果方法参数屏蔽了成员变量。在这种情况下,您可以使用this
来区分这两个参数,尽管我建议您将参数重命名为非屏蔽参数使用
this
的另一个原因是从当前类实例中传递指向该实例的指针。例如,当您创建一个新的Intent
可能还有更多地方需要使用
this
。这些是最先想到的几个# 3 楼答案
使用
this
更像是一种安全措施:由于在某些情况下,您无法控制成员或方法的存在(例如,当
OnClickListener
是第三方类时),为了获得可预测的行为,您应该始终限定此类引用。除非变量行为正是你想要的# 4 楼答案
不,不是这样,android的示例代码中提到了“this”,但没有理由认为这是一种不好的做法。然而,很多时候这是不必要的,为了简洁起见,它可能被省略了
例如,从定义的类中调用methodA()可以这样调用。方法a()。在这种情况下这是不必要的,因为这是在你打电话时暗示的。它通常用于参数名与设置的变量名相同的setter中
# 5 楼答案
这更多的是个人品味,而不是糟糕的做法
# 6 楼答案
这没关系,但如果你在代码中使用“this”,确保你在任何地方都使用它。这让你的代码更清晰