2013-06-20 24 views
0

有沒有辦法來包裝這個醜陋,如果我有一個適合於通用的類?取代通用的實際類

所以這

public HasOne aMethod(Class<? extends Model> clazz){ 

    HasOne<Customer> hasOne = injector.getInstance(Key.get(new TypeLiteral<HasOne<Customer>>() { 
    })); 

    return hasOne; 
} 

會變成這樣的事情。 (這顯然不編譯)

public HasOne aMethod(Class<? extends Model> clazz){ 

    HasOne<clazz> hasOne = injector.getInstance(Key.get(new TypeLiteral<HasOne<clazz>>() { 
    })); 

    return hasOne; 
} 

回答

4

爲什麼不

public <T extends Model> HasOne<T> aMethod(Class<T> clazz){ 

    HasOne<T> hasOne = injector.getInstance(Key.get(new TypeLiteral<HasOne<T>>() { 
    })); 

    return hasOne; 
} 
+0

sweeeet!謝謝 – David

+0

你們知道它並不是按原樣編譯的,對吧? –

+0

@MarlonBernardes yes ...主要給出一個想法 –

0
public <T extends Model> HasOne<T> aMethod(Class<T> clazz){ 
    HasOne<T> hasOne = injector.getInstance(Key.get(new TypeLiteral<HasOne<T>>() { 
    })); 
    return hasOne; 
} 

HasOne<Customer> customer = aMethod(Customer.class);