Home  >  Blog  >   Salesforce  > 

Annotation in SalesForce

Similar to Java annotations, an Apex annotation alters the way a function or class is utilized. This blog will help you learn more about Salesforce annotations as well as the types of annotations available.

Rating: 4
  1. Share:
Salesforce Articles


  • Annotations are used to give additional information to the compiler at the runtime
  • An Apex annotation modifies the way a method or class is used, similar to annotations in Java
  • Annotations are defined with an initial @symbol, followed by the appropriate keyword
  • To add an annotation to a method, specify it immediately before the method or class definition

For eg:                   

global class My Class {
@ future
Public static void my Method (string a)
// long – running Apex code
In This Blog, You Will Learn

Apex supports the following annotations:

Deprecated Annotation

Use the deprecated annotation to identify methods, classes, exceptions, enums, interfaces, or variables that can no longer be referenced in subsequent releases of the managed package in which they reside. This is useful when you are refactoring code in managing packages as the requirement evolve.

Want to enhance your skills in dealing with the worlds best CRM, enroll in our Salesforce Training 

  • New subscribers cannot see the deprecated elements, while the elements continue to function for existing subscribers and API integrations

    Eg: @deprecated
    Public void my method (string a) {  }?
  • Unmanaged packages cannot contain code that uses the deprecated keyword
  • When something in Apex, or when a custom object is deprecated, all global access modifies that reference the deprecated identifier must also be deprecated. Any global method that uses the deprecated type in its signature, must also be deprecated
  • A deprecated item, such as a method or a class, can still be referenced internally by the package developer
  • Web service methods and variables can’t be deprecated
  • You can’t remove the deprecated annotation to undeprecate something in apex after you’ve released a package version where that item in Apex is deprecated
  • You can deprecate an enum, but you cannot deprecate individual enum values.

MindMajix Youtube Channel

Future Annotation

1. Use future annotation to identify a method that is executed asynchronously. When you specify the future, the method executes when Salesforce has available resources.

2. For e.g. you can use the future annotation when making an asynchronous Web service callout to an external service. Without the annotation, the web- service callout is made from the same thread that is executing the Apex code and no additional processing can occur until the callout is complete (synchronous processing)

3. Methods with the future annotation must be static methods, and can only return a void type

4. To make a method in a class execute asynchronously, define the method with the future annotation

For eg:

global class My future class {
    @ future
    static void My method (string a, integer i) {
    System. Debug (‘Method called with: ‘+a+’ and ‘+i);
     // do callout

5. How to specify if a method executes a callout:

 @ future (callout = true )
                    public static void do callout from future ()
                        // Add code to perform callout

6. You can specify (callout = false) to prevent a method from making callouts

7. It is used to make call outs

8. One common call out is Web service

9. All Web services are callouts

Checkout SalesForce Sample Resumes

Is Test Annotation

1. Use the isTest annotation to define classes and individual methods that only contain code used for testing your application

2. The isTest annotation is similar to creating methods declared as a test method

3. Classes defined with the isTest annotation don’t count against your org limit of 2 MB for all apex code individual methods defined

4. Classes and methods defined as isTest can be either private or public..Classes defined as isTest must be top-level classes


@ isTest
        Private class My Class {
        @ isTest  static void test 1 () {
        @ isTest static void test 2 () {


A Public test class that contains utility methods for test data creation:
         @ isTest
           public class TestUtil {
           public static void create Test Accounts () {
           public static void create Test Contacts () {

Checkout Salesforce Interview Questions

Read Only Annotation

1. The @ReadOnly annotation allows you to perform unrestricted queries against the Force.com database, whereas all other limits still apply. It’s important to note that this annotation while removing the limit of the number of returned rows for a request, blocks you from  performing the following operations within the request: DML operations, call to the System .schedule, calls to methods annotated with @future, and sending emails

2. The @read only annotation is available for web services and the schedulable interface. To use the @Read Only annotation, the top-level request must be in the schedule execution or the Web service invocation

3. For e.g. if a VF(Visual Force) page calls a web service that contains the @Read-Only annotation, the request fails because VF is the top-level request, not the web service

4. VF pages can call controller methods with the @Read Only annotation, and these methods will run with some relaxed restrictions.To increase other VF- specific limits, such as the size of a collection that can be used by an iteration component like < apex: page Block Table >, you can set the Read-Only attribute on the tag to true.

Checkout SalesForce Tutorial

@Remote Action Annotation

1. It provides support for Apex  methods used in VF to be called via JavaScript, this process is often referred to as JavaScript Remoting

2. Methods with the Remote Action annotation must be both global and static

3. To use JavaScript Remoting in a VF page, you add the request as a Java Script invocation, which must take the following form:         

[]. (
              <(Call back function>(result,event) {
               // callback function logic
               }, {escape: true});

4. The namespace is your organization’s name, this is required only if the class comes from an installed package

5. The Controller is the name of your Apex controller

6. The method is the name of the Apex method you have been calling

7. Params are the comma-separated list of parameters that your method holds

8. Call back function is the name of the JavaScript function that will handle the response from the controller call back function and receives the status of the method call and the produces result as parameters

9. Escape specifies whether your Apex methods, the response must be escaped (by default, true) or not (false)

10. In your controller, your Apex method declaration is processed with the @rotation annotation like this

                @remote action
                  Global static string gets an item ID (string, object name) (….)

Are you looking to get trained on Salesforce, we have the right course designed according to your needs. Our expert trainers help you gain the essential knowledge required for the latest industry needs. Join our Salesforce Certification Training program from your nearest city.

Salesforce Training ChennaiSalesforce Training DallasSalesforce Training BangaloreSalesforce Training Hyderabad, Salesforce Training Mumbai, Salesforce Training Delhi, Salesforce Training Noida, Salesforce Training New York, Salesforce Training Chicago, Salesforce Training Kolkata, Salesforce Training Gurgaon, Salesforce Training Pune.

These courses are equipped with Live Instructor-Led Training, Industry Use cases, and hands-on live projects. Additionally, you get access to Free Mock Interviews, Job and Certification Assistance by Certified Salesforce Trainers

Related Articles:
Shallow copy and Deep Copy in Cloud Computing - Salesforce
SalesForce Integration and Environment in Cloud Computing

Mindmajix offers different Salesforce certification training according to your desire with hands-on experience on Salesforce concepts

Salesforce Administration Training Salesforce Lightning Training
Salesforce Advanced Developer Training Salesforce Developer Training
Salesforce IoT Training Salesforce App Builder Certification Training
Salesforce AppExchange Training Salesforce Service Cloud Training
and many more..
Join our newsletter

Stay updated with our newsletter, packed with Tutorials, Interview Questions, How-to's, Tips & Tricks, Latest Trends & Updates, and more ➤ Straight to your inbox!

Course Schedule
Salesforce TrainingSep 20 to Oct 05
Salesforce TrainingSep 24 to Oct 09
Salesforce TrainingSep 27 to Oct 12
Salesforce TrainingOct 01 to Oct 16
Last updated: 19 September 2022
About Author

Arogyalokesh is a Technical Content Writer and manages content creation on various IT platforms at Mindmajix. He is dedicated to creating useful and engaging content on Salesforce, Blockchain, Docker, SQL Server, Tangle, Jira, and few other technologies. Get in touch with him on LinkedIn and Twitter.

Recommended Courses

1 /15