You need to sign in to do that
Don't have an account?
Compiler Error? Wrapper classes with Lists
I believe I may have found a compiler issue. Anyone else run into the following:
I have one wrapper class called anObject.
I have a second wrapper class that contains the fields for each anObject wrapper.
public class anObject{ public Boolean isMaster { get; set; } public Id sId { get; set; } public aField[] fields { get; set; } public anObject(Id i, aField[] fl, Boolean m){ fields = fl; isMaster = m; sId = i; } } public class aField{ public Boolean checked { get; set; } // this is the problem variable public String value { get; set; } public String apiName { get; set; } public aField(String v, String a){ this.checked = true; this.value = v; this.apiName = a; } }
I translate the sObject into my custom anObject and put them into a list.
public List<anObject> theObjects { get; set; }
The problem comes when I call the list in a VF page.
<apex:repeat value="{!theObjects}" var="a"> {!a.isMaster}<br/> <apex:repeat value="{!a.fields}" var="f"> <input type="radio" name="{!f.apiName}" value="{!f.checked}"/> {!f.value} <br/> </apex:repeat> </apex:repeat>
Everything works except for the Boolean variable "checked". It throws me the following error:
Error: /apex/SMLeadMerge: Cannot coerce from class core.apexpages.el.adapters.RuntimeTypeMetadataELAdapter to class java.lang.Boolean
Interesting additional note, if I do the exact same thing but instead of using a list I use a map then the boolean works fine.
Did you find the issue? For me list works, but when I replace with map, it gives "Coerce" error. Intrestingly, same logic works just fine on other page.