[英]Alternatives to invoking instance method on static variable/method?
我讀到在 static 變量/方法上調用實例方法被認為是不好的做法(我不知道確切原因,但無論如何這不是問題)。
例如:
class Dice
{
private int value;
private static Random randomizer=new Random();
public int setAndget_DiceValue()
{
value=randomizer.nextInt(6)+1; //Accessing static variable via instance class. Any alternatives?
return value;
}
}
那么修改不涉及調用實例方法的 static 變量的替代方法是什么? 即使我在randomizer
上使用了 static 方法,我也必須在 static 方法上使用該實例方法,這仍然被認為是不好的做法。
編輯:我第一次看到的一些地方認為這是一種不好的做法:
1 )在實例方法中寫入 static 變量,為什么這是一個不好的做法?
2)對OP帖子的評論:非靜態方法可以修改static變量。 他是一個高代表用戶,所以我傾向於相信他。
通常 static 變量將伴隨着final
因此一旦初始化它們就不能在 class 中重新分配不同的值。
唯一無效的上下文是static 方法試圖直接使用實例級變量或方法,但我不認為反過來是無效的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.