You Cannot Return a List of Strings - Void method must not return a value. Please help!

857    Asked by RickiGriffen in Salesforce , Asked on Aug 16, 2021

I've been using the notes from Simple Apex class to return a list of strings. I am having trouble getting this code to work. I'm writing a simple Apex Class as part of the Trailhead module Getting Started with Apex. Here's what I'm trying to do:

Create an Apex class that returns an array (or list) of formatted strings ('Test 0', 'Test 1', ...). The length of the array is determined by an integer parameter.


The Apex class must be called 'StringArrayTest' and be in the public scope.

The Apex class must have a public static method called 'generateStringArray'.

The 'generateStringArray' method must return an array (or list) of strings. Each string must have a value in the format 'Test n' where n is the index of the current string in the array. The number of returned strings is specified by the integer parameter to the 'generateStringArray' method.

Code

public class StringArrayTest { // Public Method public static void generateStringArray (Integer length) { // Instantiate the list String[] myArray = new List(); // Iterate through the list for(Integer i=0;i

Error Message

Void method must not return a value

Answered by Kevin Rose

By stating the method must have a return type, you have declared that your return type as void. Change it to List.


Incorrect

      public static void generateStringArray

Correct

public static List generateStringArrayIt would be worth your time to read up on Class Methods:

To define a method, specify the following:

Optional which means use Modifiers, such as public or protected.

Required: The data type of the value returned by the method, such as String or Integer. Use void if the method does not return a value.

Required: A list of input parameters for the method, separated by commas, each preceded by its data type, and enclosed in parentheses (). If there are no parameters, use a set of empty parentheses. A method can only have 32 input parameters.

Required: The body of the method, enclosed in braces {}. All the code for the method, including any local variable declarations, is contained here. You can use the following syntax when defining a method such as:

      [public | private | protected | global] [override] [static] data_type method_name (input parameters) { // The body of the method }

It is your data_type that you have incorrectly specified as void in this case. Hope this helps you!



Your Answer

Interviews

Parent Categories