我最近才开始学习 Java。我有一个更多关于Java中使用的约定的问题......
所以假设我有A类:
public class A {
public void methodA{
methodB();
}
private void methodB{
}
}
有时我看到有些人使用this(例如this .methodB(); )在类中调用私有方法,即使没有歧义。是明确向人们展示他们正在调用私有方法还是只是某人的“风格”。
我最近才开始学习 Java。我有一个更多关于Java中使用的约定的问题......
所以假设我有A类:
public class A {
public void methodA{
methodB();
}
private void methodB{
}
}
有时我看到有些人使用this(例如this .methodB(); )在类中调用私有方法,即使没有歧义。是明确向人们展示他们正在调用私有方法还是只是某人的“风格”。
就其本身而言,使用this
并没有说明太多。它可以指向:
this
,无论其可见性如何。this
类。(在这种情况下通常会有一个警告,但它只是一个警告)。它确实防止的是:
我要强调的是,它根本不能保证调用的方法是私有的。
这是我第一次听说这条规则——我怀疑它至多是公司的(不是那么有用的)风格规则。
那只是风格。就个人而言,我喜欢在访问成员时过于明确,但我也可以理解人们觉得它很难看,特别是如果您使用内部类的外部类的方法或属性:
public class Outer {
private SomeType member;
private class Inner {
public void innerMethod() {
Outer.this.member.someFunction();
}
}
}
在极少数情况下,您稍后会在没有注意到的情况下引入名称阴影问题,这可能会有所帮助 - 突然间您调用了错误的函数或访问了错误的变量。尽管如此,限定与this
是冗长的,这不是一般规则。
有点离题,因为我们不是在处理私有方法,而是私有类变量,但值得一提的是,有时this
有必要防止歧义:
public class Example {
private RowMapper rowMapper;
public void setRowMapper(RowMapper rowMapper) {
this.rowMapper = rowMapper;
}
}
总的来说,没有歧义的地方this
就是多余的语法。