2013-08-02 1 views
2

Как и в C++ мы используем,Есть ли способ в коде Force.com Apex для «импорта пакетов/пространств имен», как в java/cpp?

using namespace std; 

Или в Java мы используем,

import packageName; 

Есть ли способ импорта/использовать пакет или пространство имен при написании Force.com Apex код? Например, я пишу простой Apex в консоли разработчика в «Execute Anonymous Window», как

System.debug('Hello world!'); 

Есть ли способ, чтобы написать что-то вроде

import System; 

debug('Hello world!'); 

This link казалось уместным, но не ответил на мой синтаксическая проблема.

Любая помощь приветствуется! Перенаправление на что-то очевидное, которое я, возможно, пропустил, более чем приветствуется, спасибо!

ответ

2

Я думаю, что это скрытая деталь в APEX. Я расширил классы и ссылался на системные методы, не беспокоясь об этом.

Возможно, вам стоит подумать о том, что Salesforce управляет одним большим списком импорта, который он добавляет ко всему вашему коду. Когда вы объявляете класс глобальным, он добавляется в ваш глобальный список импорта. По крайней мере this line in the documentation намекает в этом направлении: «Глобальный модификатор доступа объявляет, что этот класс известен всем кодом Apex повсюду».

Что касается пространств имен, я видел только, что это стало доступным как часть управляемых пакетов. Так, например, управляемый пакет SteelBrick QuoteQuickly имеет префикс SBQQ во всем его коде. Подробнее об этом here. Я не верю, что вы можете использовать пространство имен любым другим способом.

Есть некоторые действительно острые взгляды на salesforce.stackexchange.com, которые будут лучше меня знать. Я думаю, вы должны спросить там.


EDIT В Dreamforce '13 посещает выступление Стивена Иродом, где он сделал свои классы DTO внутренних классы и ссылается их в другом месте, как это: QuoteModel.QuoteRequest и QuoteModel.QuoteResponse. Я спросил его об этом, и он сказал, что это достойный способ имитировать пространства имен. Я нашел его слайд-колоду, но он не включил код, который он демонстрировал. Я нашел this code, что в любом случае иллюстрирует это. Ищите addTextrBox.textBoxClass.