Apex uses the same primitive data types as the SOAP API. All primitive data types are passed by value.
All Apex variables, whether they’re class member variables or method variables, are initialized to null. Make sure that you initialize your variables to appropriate values before using them. For example, initialize a Boolean variable to false.
Apex primitive data types include:
| Data Type | Description |
|---|---|
| Blob | A collection of binary data stored as a single object. You can convert this datatype to String or from String using the toString and valueOf methods, respectively. Blobs can be accepted as Web service arguments, stored in a document (the body of a document is a Blob), or sent as attachments. For more information, see Crypto Class. |
| Boolean | A value that can only be assigned true, false, or null. For example:Boolean isWinner = true; |
| Date | A value that indicates a particular day. Unlike Datetime values,
Date values contain no information about time. Date values must always
be created with a system static method. You cannot manipulate a Date value, such as add days, merely by adding a number to a Date variable. You must use the Date methods instead. |
| Datetime | A value that indicates a particular day and time, such as a
timestamp. Datetime values must always be created with a system static
method. You cannot manipulate a Datetime value, such as add minutes, merely by adding a number to a Datetime variable. You must use the Datetime methods instead. |
| Decimal | A number that includes a decimal point. Decimal is an arbitrary
precision number. Currency fields are automatically assigned the type
Decimal. If you do not explicitly set the scale, that
is, the number of decimal places, for a Decimal using the setScale method, the scale is determined
by the item from which the Decimal is created.
|
| Double | A 64-bit number that includes a decimal point. Doubles have
a minimum value of -263 and a maximum
value of 263-1. For example:Double d=3.14159; Note that scientific notation (e) for Doubles is not supported. |
| ID | Any valid 18-character Force.com record identifier. For example:ID id='00300000003T2PGAA0';Note that if you set ID to a 15-character value, Apex automatically converts the value to its 18-character representation. All invalid ID values are rejected with a runtime exception. |
| Integer | A 32-bit number that does not include a decimal point. Integers
have a minimum value of -2,147,483,648 and a
maximum value of 2,147,483,647. For example:Integer i = 1; |
| Long | A 64-bit number that does not include a decimal point. Longs
have a minimum value of -263 and a maximum value of 263-1. Use this datatype
when you need a range of values wider than those provided by Integer.
For example:Long l = 2147483648L; |
| String | Any set of characters surrounded by single quotes. For example, String s = 'The quick brown fox jumped over the lazy dog.';String size: Strings have no limit on the number of characters they can include. Instead, the heap size limit is used to ensure that your Apex programs don't grow too large. Empty Strings and Trailing Whitespace: sObject String field values follow the same rules as in the SOAP API: they can never be empty (only null), and they can never include leading and trailing whitespace. These conventions are necessary for database storage. Conversely, Strings in Apex can be null or empty, and can include leading and trailing whitespace (such as might be used to construct a message). The Solution sObject
field SolutionNote operates as a special type of String. If you have
HTML Solutions enabled, any HTML tags used in this field are verified
before the object is created or updated. If invalid HTML is entered,
an error is thrown. Any JavaScript used in this field is removed before
the object is created or updated. In the following example, when the
Solution displays on a detail page, the SolutionNote field has H1
HTML formatting applied to it: trigger t on Solution (before insert) { Trigger.new[0].SolutionNote ='<h1>hello</h1>'; } In the following example, when the Solution
displays on a detail page, the SolutionNote field only contains HelloGoodbye: trigger t2 on Solution (before insert) { Trigger.new[0].SolutionNote = '<javascript>Hello</javascript>Goodbye'; } For more information, see “HTML Solutions Overview” in the Salesforce online help. Escape Sequences: All Strings in Apex use the same escape sequences as SOQL strings: \b (backspace), \t (tab), \n (line feed), \f (form feed), \r (carriage return), \" (double quote), \' (single quote), and \\ (backslash). Comparison Operators: Unlike Java, Apex Strings support use of the comparison operators ==, !=, <, <=, >, and >=. Since Apex uses SOQL comparison semantics, results for Strings are collated according to the context user's locale, and `are not case sensitive. For more information, see Operators. String Methods: As in Java, Strings can be manipulated with a number of standard methods. See String Methods for information. Apex classes and triggers saved (compiled) using API version 15.0 and higher produce a runtime error if you assign a String value that is too long for the field. |
| Time | A value that indicates a particular time. Time values must always be created with a system static method. See Time Methods. |
In addition, two non-standard primitive data types cannot be used as variable or method types, but do appear in system static methods:
For more information on the AnyType data type, see Field Types in the Object Reference for Salesforce and Force.com.