Apex - Types de données

Comprendre les types de données

Le langage Apex est fortement typé, de sorte que chaque variable dans Apex sera déclarée avec le type de données spécifique. Toutes les variables apex sont initialisées à null au départ. Il est toujours recommandé à un développeur de s'assurer que les valeurs appropriées sont attribuées aux variables. Sinon, de telles variables, lorsqu'elles sont utilisées, lèveront des exceptions de pointeur nul ou des exceptions non gérées.

Apex prend en charge les types de données suivants -

  • Primitive (Integer, Double, Long, Date, Datetime, String, ID ou Boolean)

  • Collections (listes, décors et cartes) (à traiter au chapitre 6)

  • sObject

  • Enums

  • Classes, objets et interfaces (à traiter dans les chapitres 11, 12 et 13)

Dans ce chapitre, nous examinerons tous les types de données primitifs, sObjects et Enums. Nous examinerons les collections, les classes, les objets et les interfaces dans les prochains chapitres, car ce sont des sujets clés à apprendre individuellement.

Types de données primitifs

Dans cette section, nous discuterons des types de données primitifs pris en charge par Apex.

Entier

Un nombre de 32 bits qui n'inclut aucun point décimal. La plage de valeurs pour cela commence de -2 147 483 648 et la valeur maximale est de 2 147 483 647.

Example

Nous voulons déclarer une variable qui stockera la quantité de barils à expédier à l'acheteur de l'usine de traitement chimique.

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

le System.debug() function imprime la valeur de la variable afin que nous puissions l'utiliser pour déboguer ou pour savoir quelle valeur la variable détient actuellement.

Collez le code ci-dessus dans la console développeur et cliquez sur Exécuter. Une fois les journaux générés, la valeur de la variable "barrelNumbers" sera de 1000.

Booléen

Cette variable peut être vraie, fausse ou nulle. Plusieurs fois, ce type de variable peut être utilisé comme indicateur dans la programmation pour identifier si la condition particulière est définie ou non.

Example

Si la valeur booléenne shippingDispatched doit être définie sur true, elle peut être déclarée comme -

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

Date

Ce type de variable indique une date. Cela ne peut stocker que la date et non l'heure. Pour enregistrer la date avec l'heure, nous aurons besoin de la stocker dans la variable DateTime.

Example

Prenons l'exemple suivant pour comprendre le fonctionnement de la variable Date.

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

Longue

Il s'agit d'un nombre 64 bits sans point décimal. Ceci est utilisé lorsque nous avons besoin d'une plage de valeurs plus large que celles fournies par Integer.

Example

Si les revenus de l'entreprise doivent être stockés, nous utiliserons le type de données Long.

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

Objet

Nous pouvons faire référence à tout type de données pris en charge dans Apex. Par exemple, la variable de classe peut être un objet de cette classe, et le type générique sObject est également un objet et un type d'objet spécifique similaire comme Account est également un objet.

Example

Prenons l'exemple suivant pour comprendre le fonctionnement de la variable bject.

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

Note - Vous pouvez également créer un objet de classe prédéfinie, comme indiqué ci-dessous -

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

C'est l'objet de classe qui sera utilisé comme variable de classe.

Chaîne

La chaîne est un ensemble de caractères entre guillemets simples. Il n'a pas de limite pour le nombre de caractères. Ici, la taille du tas sera utilisée pour déterminer le nombre de caractères. Cela met un frein au monopole des ressources par le programme Apex et garantit également qu'il ne devient pas trop grand.

Example

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

Temps

Cette variable est utilisée pour stocker l'heure particulière. Cette variable doit toujours être déclarée avec la méthode statique du système.

Goutte

Le Blob est une collection de données binaires stockées en tant qu'objet. Cela sera utilisé lorsque nous souhaitons stocker la pièce jointe dans Salesforce dans une variable. Ce type de données convertit les pièces jointes en un seul objet. Si le blob doit être converti en chaîne, nous pouvons utiliser les méthodes toString et valueOf pour le même.

sObjet

Il s'agit d'un type de données spécial dans Salesforce. Il est similaire à une table en SQL et contient des champs similaires aux colonnes en SQL. Il existe deux types de sObjects: standard et personnalisé.

Par exemple, Account est un sObject standard et tout autre objet défini par l'utilisateur (comme l'objet Customer que nous avons créé) est un sObject personnalisé.

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 est un type de données abstrait qui stocke une valeur d'un ensemble fini d'identificateurs spécifiés. Vous pouvez utiliser le mot-clé Enum pour définir un Enum. Enum peut être utilisé comme tout autre type de données dans Salesforce.

Example

Vous pouvez déclarer les noms possibles de Chemical Compound en exécutant le code suivant -

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