Free Salesforce Developers Tutorials >

Chapter 3 - Apex Datatypes and Operators >

Generic sObjects in Salesforce

Generic sObjects in Salesforce

What You’ll Learn

S2 Labs

What Is Salesforce Generic sObject?

Generally, while programming we use a specific sObject type when we are sure of the instance of the sObject but whenever there comes a situation when we can get an instance of any sObject type, we use generic sObject.

Generic sObject data type is used to declare the variables which can store any type of sObject instance.

For example:

sObject s1 = new Account(Name = ‘Disney’);
sObject s2 = new Contact(lastName = ‘Sharma’);
sObject s3 = new Student__c(Name = ‘Arnold’);

sObject Variable  —> Any sObject Datatype instance


Every Salesforce record is represented as a sObject before it gets inserted into the database and also if you retrieve the records already present in the database they are stored in the sObject variable.

Methods to be used in Generic SObject:

We can also cast the generic sObjects in specific sObjects like this:

Account acc = (Account) s1;
Contact con = (Contact) s1; //Will throw a Runtime Exception: datatype mismatch



  • Setting and Accessing values from Generic sObjects:

    Similar to the sObject, we can also set and access values from Generic sObject. However, the notation is a little different.

    Examples of setting the values and accessing them:

  • Set a field value on an sObject


sObject s = new Account();
s.put('Name', 'Cyntexa Labs');


  • Access a field on a sObject


Object objValue = s.get('Name');



Download Study Material

Get access to exclusive study material for Salesforce Certification and ace your exams!

Download Now

Our Salesforce Certification Courses

Hey there! Glad you made it through our Salesforce Developer Training for beginners . But wait! We've got some high-in-demand Salesforce courses for you to take your Salesforce skills to the next level, making you a desired professional in the Salesforce job market.

Post a Comment

Your email address will not be published. Required fields are marked *