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>();
}
