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.

Apex supports the following annotations:

S.No Apex Annotation Name Description Example
1 @isTest Defines classes that only

contain code used for

testing your application.

These classes don’t count

against the total amount

of Apex used by your

organization.

@isTest private class MyTest {

// Methods for testing

}

2 @isTest(

OnInstall=true)

Defines a test class or test

method that executes on

package installation

@isTest(OnInstall=true)

private class TestClass

{

}

3 @isTest(

SeeAllData=true)

Defines a test class or test

method that has access to

all data in the organization

including pre-existing data

that the test didn’t create.

The default is false.

@isTest(SeeAllData=true)

private class TestClass

{

}

4 @deprecated Identifies methods,

classes, exceptions,

enums, interfaces, or

variables that can no

longer be referenced in

subsequent releases of

the managed package in

which they reside

 

@deprecated

public void limitedShelfLife()

{

}

5 @readOnly Defines methods that

can perform queries

unrestricted by the number

of returned rows limit for a

request

 

@readOnly

private void doQuery()

{

}

6 @remoteAction

 

 

Defines Apex controller

methods that JavaScript

code can call from a

Visualforce page via

JavaScript remoting. The

method must be static and

either public or global.

@remoteAction

global static String getId(

String s)

{

}

7 @restResource Identifies a class that

is available as a REST

resource. The class must

be global. The urlMapping

parameter is your

resource’s name and is

relative to https://instance.

salesforce.com/services/

apexrest/.

 

@restResource(urlMapping=

‘/Widget/*’)

global with sharing class

MyResource()

{

}

8 @httpGet,

@httpPost,

@httpPatch,

@httpPut,

@httpDelete

 

Defines a REST method

in a class annotated with

@restResource that

the runtime invokes when

a client sends an HTTP

GET, POST, PATCH,

PUT, or DELETE

respectively.

The methods defined with

any of these annotations

must be global and static.

 

@httpGet

global static MyWidget__c doGet()

{

}

@httpPost

global static void doPost()

{

}

@httpDelete

global static void doDelete()

{

}

9 @future Identifies methods

that are executed

asynchronously

 

global class MyFutureClass {

@future

static void myMethod(

String a, Integer i) {

System.debug(

‘Method called with: ‘ + a +

‘ and ‘ + i);

// do callout, other long

// running code

}

}

Written by 

I am Sakthivel Madesh, a certified Salesforce Advanced Developer & Administrator working on Salesforce Technology since 2011. I am currently working in Techforce Services as Sr. Salesforce Developer. I have worked on multiple technologies Like PHP, Java, Salesforce, I am very passionate about Salesforce and to earn 15x Salesforce Certification. I love Trailhead for learning Salesforce Skill and Become a Trailhead 5x Ranger too. I Love to Learn & Share my Salesforce knowledge to Salesforce Learners/Beginner using My Blog and Salesforce Community.

Leave a Reply

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

*