interface Foo<T> { ... }
class Bar implements Foo<Baz> { ... }
I've got a Bar
object. How to get the value of T
for it (Baz
)?
So far, I only managed to get the interface and T
, but I can't see a way to get its value.
Thanks in advance.
interface Foo<T> { ... }
class Bar implements Foo<Baz> { ... }
I've got a Bar
object. How to get the value of T
for it (Baz
)?
So far, I only managed to get the interface and T
, but I can't see a way to get its value.
Thanks in advance.
If you already have Guava on the classpath, this is a bit more robust as you specify the interface/superclass by type rather than index.
Of course, in the general case, you should iterate over the array, rather than assuming it has excatly one element (
[0]
). With the above example, you can castactualType
tojava.lang.Class
. In other cases it may be different (see comment by meriton)