2012-06-10 60 views

回答

3

從技術上講,他們不必重新編譯。

我想不出任何可能導致從方法/屬性中刪除最終關鍵字可能導致兼容性損失的任何影響,所以它不應該給你任何問題。

測試示例代碼,並且沒有運行時錯誤:

public class Test2{ 
    public static final String test = "HELLO!"; 
} 

public class Test { 
    public static void main (String [] args) { 
     System.out.println(Test2.test); 
    } 
} 
  1. 編譯Test.java
  2. 然Test.java - >輸出= 「你好!」
  3. 改性Test2.java:

    public class Test2{ 
        public static String test = "HELLO!"; 
    } 
    
  4. 編譯Test2.java

  5. 然Test.java - >輸出= 「!HELLO」
4

否,除去最後的關鍵字不會破壞兼容性假設你的罰款這種疣:

如果模塊B調用任何方法從模塊A和模塊C類推翻先前的最終方法,並將模塊C中的對象傳遞給模塊B,則調用將轉到模塊A的實現。

+0

請注意,這個特定的疣不應該依賴於工作,因爲任何依賴它的代碼都依賴於編譯器優化的功能。 – Joshua

2

如果您的客戶直接致電您的代碼,則不需要。 但是可能會破壞一個程序,它使用反射來發現你的類,檢查你的方法是否是最終的,並且如果方法是最終的,它會執行不同的事情。