簡體   English   中英

私有方法調用約定

[英]Private method invoking conventions

我剛開始學習Java。 我有一個問題,更多是關於Java中使用的約定...

因此,假設我有A類:

public class A {
  public void methodA{
    methodB();
  }

  private void methodB{
  }
}

有時候我看到一些人使用調用這個類中的私有方法(如 .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就是多余的語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM