Apex - Tipi di dati

Comprensione dei tipi di dati

Il linguaggio Apex è fortemente tipizzato, quindi ogni variabile in Apex verrà dichiarata con il tipo di dati specifico. Tutte le variabili apex vengono inizializzate inizialmente su null. È sempre consigliabile che uno sviluppatore si assicuri che i valori corretti siano assegnati alle variabili. In caso contrario, tali variabili, quando vengono utilizzate, genereranno eccezioni puntatore nullo o eccezioni non gestite.

Apex supporta i seguenti tipi di dati:

  • Primitivo (intero, doppio, lungo, data, data e ora, stringa, ID o booleano)

  • Collezioni (elenchi, set e mappe) (da trattare nel capitolo 6)

  • sObject

  • Enums

  • Classi, oggetti e interfacce (da trattare nei capitoli 11, 12 e 13)

In questo capitolo, esamineremo tutti i tipi di dati primitivi, gli oggetti e gli enum. Nei prossimi capitoli esamineremo le raccolte, le classi, gli oggetti e le interfacce poiché sono argomenti chiave da apprendere individualmente.

Tipi di dati primitivi

In questa sezione, discuteremo i tipi di dati primitivi supportati da Apex.

Numero intero

Un numero a 32 bit che non include alcun punto decimale. L'intervallo di valori per questo inizia da -2.147.483.648 e il valore massimo è fino a 2.147.483.647.

Example

Vogliamo dichiarare una variabile che immagazzinerà la quantità di barili che devono essere spediti all'acquirente dell'impianto di trasformazione chimica.

Integer barrelNumbers = 1000;
system.debug(' value of barrelNumbers variable: '+barrelNumbers);

Il System.debug() la funzione stampa il valore della variabile in modo che possiamo usarlo per eseguire il debug o per sapere quale valore contiene attualmente la variabile.

Incolla il codice sopra nella Console per gli sviluppatori e fai clic su Esegui. Una volta generati i log, il valore della variabile "barrelNumbers" verrà visualizzato come 1000.

Booleano

Questa variabile può essere vera, falsa o nulla. Molte volte, questo tipo di variabile può essere utilizzato come flag nella programmazione per identificare se la particolare condizione è impostata o meno.

Example

Se il valore booleano shippingDispatched deve essere impostato come true, può essere dichiarato come -

Boolean shipmentDispatched;
shipmentDispatched = true;
System.debug('Value of shipmentDispatched '+shipmentDispatched);

Data

Questo tipo di variabile indica una data. Questo può memorizzare solo la data e non l'ora. Per salvare la data insieme all'ora, dovremo memorizzarla nella variabile di DateTime.

Example

Considera il seguente esempio per capire come funziona la variabile Date.

//ShipmentDate can be stored when shipment is dispatched.
Date ShipmentDate = date.today();
System.debug('ShipmentDate '+ShipmentDate);

Lungo

Questo è un numero a 64 bit senza punto decimale. Viene utilizzato quando è necessario un intervallo di valori più ampio di quelli forniti da Integer.

Example

Se le entrate dell'azienda devono essere archiviate, utilizzeremo il tipo di dati come Long.

Long companyRevenue = 21474838973344648L;
system.debug('companyRevenue'+companyRevenue);

Oggetto

Possiamo fare riferimento a questo come a qualsiasi tipo di dati supportato in Apex. Ad esempio, la variabile Class può essere oggetto di quella classe e anche il tipo generico sObject è un oggetto e allo stesso modo anche il tipo di oggetto specifico come Account è un Object.

Example

Considera il seguente esempio per capire come funziona la variabile bject.

Account objAccount = new Account (Name = 'Test Chemical');
system.debug('Account value'+objAccount);

Note - Puoi anche creare un oggetto di classe predefinita, come indicato di seguito -

//Class Name: MyApexClass
MyApexClass classObj = new MyApexClass();

Questo è l'oggetto della classe che verrà utilizzato come variabile di classe.

Corda

La stringa è un insieme di caratteri all'interno di virgolette singole. Non ha alcun limite per il numero di caratteri. Qui, la dimensione dell'heap verrà utilizzata per determinare il numero di caratteri. Ciò pone un freno al monopolio delle risorse da parte del programma Apex e garantisce anche che non diventi troppo grande.

Example

String companyName = 'Abc International';
System.debug('Value companyName variable'+companyName);

Tempo

Questa variabile viene utilizzata per memorizzare l'ora particolare. Questa variabile dovrebbe sempre essere dichiarata con il metodo statico di sistema.

Blob

Il Blob è una raccolta di dati binari archiviati come oggetto. Questo verrà utilizzato quando vogliamo memorizzare l'allegato in Salesforce in una variabile. Questo tipo di dati converte gli allegati in un singolo oggetto. Se il blob deve essere convertito in una stringa, è possibile utilizzare i metodi toString e valueOf per lo stesso.

sObject

Questo è un tipo di dati speciale in Salesforce. È simile a una tabella in SQL e contiene campi simili alle colonne in SQL. Esistono due tipi di oggetti: Standard e Personalizzato.

Ad esempio, Account è un sObject standard e qualsiasi altro oggetto definito dall'utente (come l'oggetto Customer che abbiamo creato) è un sObject personalizzato.

Example

//Declaring an sObject variable of type Account
Account objAccount = new Account();

//Assignment of values to fields of sObjects
objAccount.Name = 'ABC Customer';
objAccount.Description = 'Test Account';
System.debug('objAccount variable value'+objAccount);

//Declaring an sObject for custom object APEX_Invoice_c
APEX_Customer_c objCustomer = new APEX_Customer_c();

//Assigning value to fields
objCustomer.APEX_Customer_Decscription_c = 'Test Customer';
System.debug('value objCustomer'+objCustomer);

Enum

Enum è un tipo di dati astratto che memorizza un valore di un insieme finito di identificatori specificati. È possibile utilizzare la parola chiave Enum per definire un Enum. Enum può essere utilizzato come qualsiasi altro tipo di dati in Salesforce.

Example

È possibile dichiarare i possibili nomi di Chemical Compound eseguendo il seguente codice:

//Declaring enum for Chemical Compounds
public enum Compounds {HCL, H2SO4, NACL, HG}
Compounds objC = Compounds.HCL;
System.debug('objC value: '+objC);