簡體   English   中英

用於非靜態變量訪問靜態變量的java checkstyle規則

[英]java checkstyle rule for non-static variable access to static variables

是否有Checkstyle規則可用於限制對靜態變量和方法的非靜態訪問?

這應該發出警告:

instance.staticField = value;

Eclipse為此設置了一個選項,但是我想在構建中強制執行它。

我想您正在尋找使用javac -Xlint:static -Werror toto.java

文檔

  • -Xlint:name :啟用警告名稱。 有關可以使用此選項啟用的警告的列表,請參見使用-Xlint選項可以啟用或禁用的警告部分。

  • -Werror :如果發生警告,則終止編譯。

我嘗試了這個例子:

public class StaticTest {
    public static String toto = "toto";

    public static void main(String s[]) {
        StaticTest st = new StaticTest();
        st.toto="dfd";
    }
}

輸出為:

StaticTest.java:16:警告:[static]靜態變量應按類型名稱限定,

StaticTest,而不是表達式

  st.toto="dfd"; ^ 

錯誤:找到警告並指定了-Werror 1錯誤1警告

顧名思義,Checkstyle僅檢查代碼的形式。 如果您搜索錯誤模式,則應查看Findbugs:

http://findbugs.sourceforge.net

為此,您可以使用FirebugPMD 兩個主要的構建工具MavenAnt確實具有為您執行此操作的命令。

不,Checkstyle的所有檢查都具有局限性/范圍-它僅檢查一個文件的結構,無法獲取其他類/文件的結構。

暫無
暫無

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

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