新聞中心
這期內(nèi)容當中小編將會給大家?guī)碛嘘PApex類與訪問修飾符的權限是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、平南網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5網(wǎng)站設計、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為平南等各大城市提供網(wǎng)站開發(fā)制作服務。
Apex 類的定義與Java相同,通過class 關鍵字標識。
1) 每個Top類必須要有修飾符,否則不能通過編譯。
(Compile Error for Test.cls: Top-level type must have public or global visibility at line 1 column 7)
2)內(nèi)部類可以不寫修飾符(私有)。
3) 可選virtual, abstract 表明當前類為抽象類
4)和Java一樣,可通過implements關鍵字實現(xiàn)多個接口,通過extends單繼承父類
5)類名不能和SF的關鍵字重名如標準對象等(之前一同事遇到一個類的類名和標準對象同名,導致在使用標準對象時,報字段不存在)
類訪問修飾符
1 private 不可用在Top 類中,僅可在內(nèi)部類中使用,外部不可訪問
當new Test 調(diào)用my()時,可正確執(zhí)行,當通過 new Test.InnerClazz時報InnerClazz不 存在
public class Test{ private class InnerClazz{ } public void my(){ InnerClazz iclass = new InnerClazz(); System.debug(iclass); } }
2 public 可在當前應用或者在當前命名空間使用
3 global 任意訪問,webService必須是global的,如果一個方法或者內(nèi)部類為global,則Top類必須為global
4 with sharing/without sharing 當前類權限模式
類定義形式
private | public | global [virtual | abstract | with sharing | without sharing] class ClassName [implements InterfaceNameList] [extends ClassName] { // The body of the class }
成員變量定義形式
[public | private | protected | global] [final] [static] data_type variable_name [= value]
類型和變量名為必須,訪問修飾可選,不寫為private final與static 修飾變量為常量與Java相同
類型:基本類型與自定義類型
Apex 屬性:get/set
public Integer prop{ get {return prop;} set {prop = value;} } //簡寫 當只寫get時,在本類中也無法給值 public Integer prop{get; set;}
成員方法形式
[public | private | protected | global] [override] [static] data_type method_name (input parameters) { // The body of the method }
1)訪問修飾符可選 不寫為private
2) override 實現(xiàn)父類的抽象方法
3) static 靜態(tài)方法,類方法,通過類調(diào)用
4) 值類型(基本數(shù)據(jù)類型如:Integer,String)與引用類型
權限(一)
1)with sharing 當前類遵循SF的共享模型 按SQL語句執(zhí)行的結果集只查出有權限的數(shù)據(jù)。
2)without sharing 按SQL語句執(zhí)行
測試1:當控制類為without sharing 對像所有權限為無,通過VF頁面,讓無權限的人是否能創(chuàng)建
實際測試后,是可以創(chuàng)建,所有人與創(chuàng)建人均為當前登錄者,但是無法通過標準界面查看當前記錄(賦值是程序給值)
測試2:當查詢后臺數(shù)據(jù)在VF頁面展示時,查詢?nèi)罩緯r,顯示獲取了數(shù)據(jù),前臺通過循環(huán)時,打印空白。無法查看
當把對象勾選查看時,可以打印出結果,但是字段安全性不可見的字段還是不可見。
測試3:刪除一條記錄,結果顯示可以刪除。
測試4:修改一條記錄,結果顯示可以刪除。(賦值是程序給值)
采用without sharing時,可以創(chuàng)建對象,能查詢到結果,但是無法在VF頁面中顯示,當有對象查看權限時,是可以看到標準字段,當字段可見性沒有勾選時,仍然是不可見的。
修改和刪除能正常工作。(還需要測試的情況有:內(nèi)部類的權限,當with sharing調(diào)用without sharing類的方法時權限,當with sharing extends without sharing 權限,當without sharing extends with sharing)
一般都是with sharing,without sharing解決特殊情況下。如最近遇到在市場活動下,創(chuàng)建報名,報名上的費用通過trigger匯總更新到市場活動上,銷售沒有市場活動編輯權限,但匯總又需要編輯權限的情況。
上述就是小編為大家分享的Apex類與訪問修飾符的權限是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站標題:Apex類與訪問修飾符的權限是什么
文章鏈接:http://www.dlmjj.cn/article/psgods.html