Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use class instance as generic type

Tags:

java

enums

class

Is there any way of using SomeClass.class as the generic type for a type?

For example I have an enum:

enum MyEnum {
    FOO(String.class);
    private Class fooClass;
    private MyEnum(Class fooClass) {
        this.fooClass = fooClass;
    }
    public Class getFooClass(){
        return fooClass;
    }
}

And then somewhere in my code:

List<MyEnum.FOO.getFooClass()> list = new ArrayList<>();
like image 695
Mark Buikema Avatar asked Jun 22 '26 18:06

Mark Buikema


1 Answers

No. Generics are evaluated at compile time while the value of this call:

MyEnum.FOO.getFooClass()

is only known at runtime.

like image 58
vap78 Avatar answered Jun 25 '26 06:06

vap78