I would like to know if I can use objects that I created as state variables of my service ? I read "4.1.1. Mapping state variables" and I understood that it works only with the Java types but I want to be sure.
You give Cling a String representation of your value with VLCRemote#toString(). That's the value send over UPnP. When Cling receives the String representation it will give it back to you, by instantiating VLCRemote(String).