2011-09-15 60 views
0

我用一個公共變量LPAssign聲明瞭一個類。我希望初始值爲1,然後每次運行觸發器時都會更新。如何從Apex中的觸發器更新類變量?

這裏是我的類:

public class LP { 
public static integer LPAssign; 

static{ 
LPAssign = 1; 
} 

} 

而在我的觸發代碼做到這一點:

if LPAssign = 1, do several things, then update LPAssign =2. 
if LPAssign = 2, do several things, then update LPAssign =3. 
if LPAssign = 3, do several things, then update LPAssign =4. 
if LPAssign = 4, do several things, then update LPAssign =1. 

在我的觸發又傳給隨機場LPAssign,看它是否被更改爲2 (它確實),但是然後我的公共類重置值爲1.我認爲該類的靜態部分只初始化一次。

+0

是什麼問題你正在努力解決?它是循環首席任務嗎? –

回答

3

對於一個執行線程,靜態變量只是靜態的,所以如果你通過前端更新記錄,然後第二次更新它,那麼當第二次線程完成時你的變量將回到1。

如果您需要存儲執行線程之間的值,您最好將其存儲在對象的字段中 - 考慮到平臺的速度和擴展的管理器限制這些日子應該不會真的引起您的問題!

所有這一切不談,如果你在一個線程中多次運行觸發,你應該能夠訪問公共靜態成員沒有問題,我做我自己停止級聯觸發器等

相關問題