用实际的类替换泛型

时间:2013-06-20 04:15:10

标签: java

如果我有一个适合通用的类,有没有办法把这个丑陋包裹起来?

所以这个

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

2 个答案:

答案 0 :(得分:4)

为什么不

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

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

    return hasOne;
}

答案 1 :(得分: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);