2011-07-01 21 views
8

我該如何聲明實現類的java接口字段應該細化該字段?怎樣聲明實現類的java接口字段應該細化字段

例如

public interface IWorkflow{ 
    public static final String EXAMPLE;// interface field 
    public void reject(); 
} 

// and implement class 
public class AbstWorkflow implements IWorkflow 
{ 
    public static final String EXAMPLE = "ABCD"; /*MUST HAVE*/ 
    public void reject(){} 
... 
} 

謝謝。

回答

4

見節the specification 9.3。界面中沒有重寫的字段 - 它們只是隱藏在某些上下文中,而在其他語言中則不明確。我只是遠離。取而代之的是一個getter(getEXAMPLE())

+1

難道僅僅是我。不可序列化嗎? – Link19

+2

@GlenLamb--要麼我沒有追蹤你要去的地方,或者你誤解了這個問題? –

+0

每當你實現Serializable時,我被告知我需要聲明一個SerializableUID或其他東西。這不是問題想要達到什麼嗎? – Link19

11

你不能。

而且,interface不能要求在實現上定義static方法。

你能做的最好的是這樣的:

public interface SomeInterface { 
    public String getExample(); 
} 
+0

看到這篇文章的更多背景信息:http://stackoverflow.com/questions/512877/why-cant-i-define-a-static-method-in -a-java-interface – Dave

相關問題