What is Wrapper Class in Salesforce?

You learned about Salesforce in-depth in the previous sessions of this Salesforce tutorial. Let’s now learn what is wrapper class in salesforce. A wrapper class is nothing but a collection of different Salesforce data types. You can combine multiple data types and utilize them for various purposes. For example, there is a wrapper class that can access the account records and displays an in-page block table. You can also have an option for a checkbox, and you can associate multiple serial numbers to display the number of records. So, there can be multiple records and respective serial numbers.

Check out Intellipaat’s blog to get a fair understanding of Salesforce Automation System!

Here are the topics we would be discussing in this section of the Salesforce Tutorial on wrapper class in Salesforce:

When comparing the architecture of Salesforce, we can say that it is somewhat relevant with the database wherein the records are defined as rows, the fields are determined as columns and the objects are determined as tables. Having different collections of classes assigned to facilitate the developmental process successfully, Salesforce possesses its individual MVC architecture.

MVC Architecture

A Model-View-Controller (MVC) is the model that is determined by the Salesforce UI and the metadata is stored to view it as XML later. A build-up of Visualforce pages and lightning components that can be used as needed is a view layer. A controller is basically an  Apex Class extended to the controller; the data is relinquished to accessible models first to view the elements. The developers are limited to a data structure of a particular object type while the relationship between these data structures is necessary. In order to handle various objects collectively, you will need only a single object for an individual field. This condition might be confusing in the beginning, but some practice will help you get through this.

Following image shows the MVC architecture in Salesforce:

There are two types of controllers: standard controllers and custom controllers. The controller is responsible for modeling as well as viewing the objects, components, and pages.


As can be seen from the image above, a single contact can have many orders wherein each order can have various order lines. This kind of nested structure is exemplified through a JSON or NoSQL database.

Wrapper Class in Salesforce as a Solution

Wait, what is wrapper class in salesforce? A wrapper class is used mainly to wrap data collected from the present objects to a new object. sObject is defined as a distinct type that doesn’t include a database or any relevant fields here, but it doesn’t have any API page but is definitely a valid object.

In other orders, wrapper class is a container class; it is a data structure and abstract data type that contains various objects and their members together. A wrapper class is also named as a custom object which is determined by the developer with a particular set of properties, e.g., a custom class in the Salesforce contains fields and each field has a definite data type. Similarly, wrapper class is also a custom class that has various properties and data types that can be determined according to the requirement. If you want to wrap various data objects, there is no better option than wrapper classes in Salesforce.

Wish to crack Salesforce job interviews? Intellipaat’sTop Salesforce Interview Questions are meant only for you!

Advantages of Wrapper Class in Salesforce

  • When comparing the JSON structure, wrapper class structure is comparable to the data visualization technique on a particular web page.
  • There isn’t any requirement for passing the map structure for browsing elements or to manage the relationship between objects.
  • If you want to pass sObject, there isn’t any penalty for the same, and they can also be extendable to the class constructors.
  • The data can be organized perfectly when it is nested.

Wrapper class and container class can be kept together, but it is better if they are stored separately. When they are kept independently, it is easy for them to be maintained and reused whenever required, preventing code duplication. 

Therefore, it is clear enough that the wrapper class is used to construct a new object within the Apex code which can consolidate a set of fields that are most importantly required at the runtime or various fields from different objects. This provides extra control and flexibility over the data objects to view and control the elements.

Wrapper Class as an Everyday Tool in Salesforce

Let’s now talk about why wrapper class is described as an everyday Salesforce tool. By saying that we mean all Salesforce developers use wrapper class along with other Salesforce tools on a daily basis. This is normal in Visualforce wherein some of the queries are performed on data before being presented to the user. 

A few activities included can be as follows:

  • Connecting values concurrently for various fields of an object using A mapping table
  • Presenting various threads of data mutually in a single list
  • Enhancing a data object by extracting the data from another object.

The most suitable solution for all these concerns is wrapper classes. Every wrapper class can have different specifications as designed which is based on its user terms, but the comprehensive structure is more manageable for all of the wrapper classes. A wrapper class doesn’t have an inner class determined by default, yet the practice of inner class can be more efficient and simple in Salesforce. A wrapper class is used similarly as unions, structures, or algebraic types for any other class; the method is limited with a bounded introspection and with possible dynamism in Apex.

In order to construct any powerful wrapper class, you should use properly designed properties in your wrapper class rather than opting a highly complex rendering. Also, have in mind that there is a huge requirement for enforcing support manually so that the data restructuring can come with some particular obligation to enforce all these permissions properly.

Visit our Salesforce Community to get answers to all your queries!

Sorting Wrapper Class Collection in Apex

A predefined functionality in Apex is used to classify fundamental data types in Salesforce. A lot of developers have faced this situation wherein they had to classify the custom data types according to force.com. Still, how would force.com know about the sorting of a class? And, how would they know the data usage within a class?

Interested in learning Salesforce? Check out the Salesforce Training in London!


Wrapper classes were proven as growth for Salesforce developers with a wider range of solutions along with their functionalities. They are used everywhere and have realized their benefits too. Whenever you want to compare custom objects or you need to add more functionalities, you can try using wrapper classes in your own way. You can also add many fields within an object whenever required and maximize the usability of an application too. With this, we come to the end of this section on what is wrapper class in salesforce.

Looking for a comprehensive Salesforce Training Course? Enroll now!

Recommended Videos

Leave a Reply

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

Solve : *
17 + 14 =