使用泛型在Java中进行可选参数化

dav*_*orp 13 java generics

参数化类时是否可以指定默认类型?例:

// abstract class    
public abstract class AbsClass<T1 extends Par1Class, T2 extends Par2Class> {
    // code 
}

// parametrized imlementation class
public class RealClass extends AbsClass<ClassThatExtendsPar1, ClassThatExtendsPar2Class> {
   // code
}

// non-parametrized imlementation class
public class RealClass extends AbsClass {
   // code
}
Run Code Online (Sandbox Code Playgroud)

在我的实现中,我必须指定NONE或ALL参数.可以使第二个参数非强制性,如下所示:

// abstract class    
public abstract class AbsClass<T1 extends Par1Class, T2 extends Par2Class : default Par2Class > {
    // code 
}

// parametrized only mandatory imlementation class
public class RealClass extends AbsClass<ClassThatExtendsPar1> {
   // code
}
Run Code Online (Sandbox Code Playgroud)

Eug*_*gen 19

简单回答:不,java不支持这样的默认参数化.