簡體   English   中英

為什么checkstyle抱怨這個?

[英]Why does checkstyle complain about this?

我有一個類字段,它是一個數據對象。 為什么checkstyle會抱怨“寫b的發生”這是什么意思? 在doSomething()之前總是調用doSomething1()

public class A{
  private B b;
  public void doSomething() {
    if(b!=null) {
      b.setYear(2012);
      b.setDay("Tuesday");
   } 
  }
  public void doSomething1(){
    b = new B();
    b.setDate(new Date());
  }
}

這不是Checkstyle,而是Eclipse本身。

如果突出顯示類的屬性,它將在類中顯示該屬性的出現,並在右側滾動條中顯示標記。 這些是黃色的,就像Checkstyle標記一樣。

它將突出顯示屬性被讀取的實例(“X的出現”)以及可以寫入該屬性的位置(“寫出X的出現”),例如,如果將其作為參數傳遞給方法。

您可以看到消息的配置位置http://grepcode.com/file/repository.grepcode.com/java/eclipse.org/3.5.2/org.eclipse.jdt/ui/3.5.2/org/eclipse/ JDT /內部/ UI /搜索/ SearchMessages.properties

我最近對CheckStyle,FindBugs等進行了一些研究。

使用FindBugs(findbugs.sourceforge.net)時,一個常見的問題是FindBugs稱之為“死存儲”,當一個值永遠不會被讀取但只寫入時 可能是這個問題嗎?

您的示例似乎非常簡單 - 您能提供更多詳細信息嗎?

這不是錯誤。 當您將光標上下文放在特定術語上時,就會出現這種現象,在您的情況下為'b'。 執行此操作時,您可以在代碼窗口右側看到由空灰色框划分的所有術語。 您還將以淺黃色顯示該術語的位置,如果它是變量,則會向其寫入數據。

試試這個,單擊Exception一詞的某個地方,你會看到只有淺灰色的空心框。 現在在代碼中嘗試一個真正的變量,你應該看到灰色框,並出現一個或多個淡黃色框。

我自己從未使用過此功能,但也許有人發現它很有價值。

您確定這不是您自己的自定義規則嗎? 看起來不像checkstyle http://checkstyle.sourceforge.net/availablechecks.html附帶的那個。如果它是你自己的自定義規則,你需要問任何人寫了那個自定義檢查。

我只能認為該規則適用於非易變對象,這些對象更容易維護。

暫無
暫無

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

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