簡體   English   中英

是否使用靜態方法?

[英]Use static method or not?

嗨,我有一個Java網絡服務,其中有一個類,該類具有不同的方法,這些方法可以修改客戶端發送的字符串,並根據他想要的字符串類型將其返回。 因此,基於字符串類型要求,將調用一個方法。

喜歡

class Test{

public static String a(String z)
{
 // do stuff and return;
}


public static String b(String z)
{
 // do stuff and return;
}
}

因此,如果出現類似10000個請求的數組,則這些方法被調用10000次,我想知道這些方法應被視為靜態還是非(我應在我的主要Web服務類中創建此類的全局對象,並調用它們方法) ?

我認為不需要將方法設為靜態,如果可以在對象內訪問該方法,則應該(盡可能避免使用靜態方法)。這樣可以提高代碼性能(就內存利用率而言)。

這些方法是靜態的引人注目的原因是什么? 如果需要靜態方法,請創建這些方法。 否則,從設計的角度來看,請堅持使用非靜態方法。 您不能覆蓋靜態方法(盡管您可以隱藏它們)。

這是:

在Java中,類上的靜態方法有什么缺點嗎?

如果在所有情況下該方法的行為都相同,則可以使用靜態方法。 如果這些方法只是對作為參數提供的字符串做了一些工作,並且所有實例的行為都相同,則可以。

同樣,您也可以從中創建一個單例並通過UNIQUE_INSTANCE調用方法。

就像是:

public class Test {

    private static final Test UNIQUE_INSTANCE = new Test();

    private Test() {
    }

    public static final Test getUniqueInstance() {

        return UNIQUE_INSTANCE;
    }

    public final String a(String z) {

        // do stuff and return;
    }


    public final String b(String z) {

        // do stuff and return;
    }
}

那你可以做>>

Test.getUniqueInstance().a("Hello");
Test.getUniqueInstance().b("World");

如果線程之間沒有共享任何資源,則使用任何靜態方法都不會造成損害。

是的,應該有一個靜態修飾符,因為不同的方法或函數之間沒有交互作用,並且結果以完全相同的方法返回。 “靜態”一詞用於定義無需實例化此類對象即可訪問的類變量或方法。

如果您不打算實例化該類,而只需要使用其中的方法,則“ Static”是正確的方法,並將類構造函數設置為private。

暫無
暫無

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

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