title: How should I cast for Java generic with multiple bounds?
body: <p>Is it possible to cast an object in Java to a combined generic type?</p>
  
  <p>I have a method like:</p>
  
  <pre><code>public static &lt;T extends Foo &amp; Bar&gt; void doSomething(T object) {
      //do stuff
  }
  </code></pre>
  
  <p>Calling this method is no problem if I have a class that implements both interfaces (Foo &amp; Bar).</p>
  
  <p>The problem is when I need to call this method the object I need to pass to it is received as <code>java.lang.Object</code> and I need to cast it to make the compiler happy. But I can't figure out how to make this cast.</p>
  
  <p>edit:</p>
  
  <p>The problem lies in a function like this:</p>
  
  <pre><code>public void problemFunction (Object o) {
    if ( o instanceof Foo &amp;&amp; o instanceof Bar) {
        doSomething((Problematic cast) o);
    }
  }
  </code></pre>
  
  <p>}</p>