0

Method :

public List<Case> getCaseDetails() 

 { 
   List<Case> cd = new List<Case>(); 

     if(cd == null) cd = [SELECT Field1__c,Field2_Contact__c FROM Case WHERE Field1__c =:currentRecordId limit 1 ]; 

 return cd; 
}

While testing this method in Dev Console , it's returning empty List . Can you please help me in finding what is missing/wrong?

3
  • where you are setting value of currentRecordId in Dev console?
    – Himanshu
    Jul 28, 2016 at 6:49
  • 2
    your cd list is never null as you have initialized it just above. so the if condition get failed and returns the empty list. Anyway I'm not seeing any benefit of checking for null or empty just after initializing the list as you know it's not null and it's empty
    – highfive
    Jul 28, 2016 at 6:50
  • @Himanshu- In Dev Console I was just checking by removing the WHERE clause
    – SFDCRookie
    Jul 28, 2016 at 7:05

2 Answers 2

3

SO when you initialize your list like

 List<Case> cd = new List<Case>(); 

means cd is not null. It is just an empty list

SO you need to check like

if(cd.isEmpty()) 
{
  cd = [SELECT Field1__c,Field2_Contact__c FROM Case WHERE Field1__c =:currentRecordId limit 1 ]; 
}

For the condition for null

If your list is initialize like

List<Case> cd; 

then you need to check like

if(cd == null)
2

Your if statement is testing to see if the list is null, and if it is, then it's assigning records from the query. However, you're initialising the list to an empty list, so it's not null, but an empty list, these are very different things.

You want to check for the current size, not to see if it's null:

if(cd.size() == 0) cd = [query];

An empty list is still a list, it's an instantiated object that exists, it just doesn't contain anything. If you declared cd like so:

List<Case> cd;

...then cd would be a variable that can point to a list of cases, but currently it holds no reference and therefor has the value null.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .