title: java dollar symbol com.package.Foo.$$$.Bar issue
body: <p>I am doing a webservice call and it responds with model class called <code>Foo</code>. <code>Foo</code> is not extending any other class. </p>
  
  <pre><code>Foo data = call(); 
  </code></pre>
  
  <p>I can access all data fields normally. <code>String str = data.getData();</code></p>
  
  <p>However if I do <code>System.out.println(data.toString())</code>; 
  I am getting back the following output: <code>com.package.Foo.$$$.Bar@2938ac9a</code></p>
  
  <p>I suspect that web framework is doing some reflection magic around responses and wrapping it with proxy class. Since <code>Bar</code> is extending <code>Foo</code> on application level I can't notice anything and still can access all data I need. But...</p>
  
  <p><strong>Problem:</strong> </p>
  
  <p>When I am trying to serialise Foo data; as a result I am getting a lot of unexpected data and fields. </p>
  
  <p>I wonder if someone can explain me what does <code>$$$</code> mean in java and <strong>how do I convert <code>Bar</code> object back to <code>Foo</code>?</strong> </p>