Returning an anonymous class that uses a final primitive. How does it work?
        Posted  
        
            by Tim P
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Tim P
        
        
        
        Published on 2010-04-23T14:23:42Z
        Indexed on 
            2010/04/23
            14:33 UTC
        
        
        Read the original article
        Hit count: 411
        
Hi, I was wondering if someone could explain how the following code works:
public interface Result {
  public int getCount();
  public List<Thing> getThings();
}
class SomeClass {
...
  public Result getThingResult() {
    final List<Thing> things = .. populated from something.
    final int count = 5;
    return new Result {
      @Override
      public int getCount() {
        return count;
      }
      @Override
      public List<Thing> getThings();
        return things;
      }
    }
  }
...
}
Where do the primitive int , List reference and List instance get stored in memory? It can't be on the stack.. so where? Is there a difference between how references and primitives are handled in this situation?
Thanks a bunch, Tim P.
© Stack Overflow or respective owner