2012-08-08 101 views
1

我有一個基本上解析文件並將結果存儲在散列圖中的類,該類應處理目錄中的所有文件(通常爲< 10個文件)。該過程對於單個線程是線性的。JAVA:什麼時候該類應該是靜態或動態的

爲了最佳實踐,它應該是一個靜態類還是動態類?

+1

你是什麼意思「靜態還是動態」? 'class'可以用'static'修飾符iff來聲明[它是一個靜態嵌套類](http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)。請顯示代碼並嘗試再次解釋您的問題。 – oldrinb 2012-08-08 20:21:55

+0

聽起來像一個非常通用的任務,所以我會用'static'去,但我準備被更多知識淵博的Java怪才所推翻。 :D – brimborium 2012-08-08 20:21:56

+0

http://stackoverflow.com/questions/2671496/java-when-to-use-static-methods – 2012-08-08 20:26:21

回答

3

如果調用您的分析方法使得即使在已創建無「對象」並初始化感,使用static方法

即:不使用

Parser p = new Parser(); 
HashMap result = parser.parse("directory"); 

當你可以很容易做到以下:

HashMap result = Parser.parse("directory"); 

Java: when to use static methods

0

我不確定這個類,但是你可以使這個hashmap靜態公共訪問(直接或通過訪問器)。

1

我認爲static修飾符是適當的,如果你沒有任何理由來實例化類。

此外,根據this question只有嵌套類可以被稱爲靜態,並且當它們是時,您可以使用嵌套類而不需要創建外部類的實例。

+0

如果沒有理由實例化類,那麼'abstract'是關鍵字。靜態僅僅意味着你可以訪問沒有實際類的實例的成員。 – 2012-08-08 20:36:34

+0

@ColinD不是'abstract'是你打算讓其他類從類繼承的關鍵字嗎? – 2012-08-08 20:37:53

+0

是的,它可以用於那個。您創建超類抽象,以便無法創建它的實例,從而強制使用子類。 – 2012-08-08 20:41:42

0

動態類加載是在編譯時不知道類的名稱時完成的。我沒有看到在特定情況下使用「動態」修飾符的原因。

相關問題