I would like to do something like this in java 8:
public void example(Class clazz) {
MyClass<clazz> myObj = new MyClass<clazz>();
}
But I'm getting "cannot find symbol: symbol class clazz location: "
Is this possible? Thanks!
I would like to do something like this in java 8:
public void example(Class clazz) {
MyClass<clazz> myObj = new MyClass<clazz>();
}
But I'm getting "cannot find symbol: symbol class clazz location: "
Is this possible? Thanks!
Generic type parameters must be type names, not variable names.
Declare a generic type parameter for your method, and use it in your parameter and variable declaration.
public <T> void example(Class<T> clazz) {
MyClass<T> myObj = new MyClass<T>();
}
Generally one uses single capital letters as type variables, e.g. T
, to distinguish them easily from normal variables, e.g. clazz
.
You can do this :
public void example() {
MyClass<Class> myObj = new MyClass<Class>();
}
You can not put variables inside <>
Since you want clazz
to be a type, you must pass it as a type parameter:
public <T> void example() {
MyClass<T> myObject = new MyClass<T>();
}