no, you can have &quot;trait objects&quot; in Rust, which are boxed and use dynamic dispatch instead of static dispatch, but they lose the original type (type erasure -- another similarity with java :)), so they aren&#x27;t true generics.<p>For example, you could use the `Read` trait as a type:<p><pre><code>    fn some_func(a: Box&lt;Read&gt;) { }
</code></pre>
but then only the `Read` methods would be available on `a`, you wouldn&#x27;t be able to access methods from the original type of `a`.