java 方法参数限制_Java在通用方法中限制了参数

我在通用方法中用有界参数测试了一些东西,发现了一些奇怪的行为。如果有人能解释下面代码片段中的两个错误,那就太好了。

假设有两类Class1和Class2,都是从BaseClass扩展而来。Class2实现接口。

在Class1中,我有一个方法,它按以下方式返回Class2的一个实例:

public class Class2 extends BaseClass implements Interface {

@Override

public void method() {

System.out.println("test"); //$NON-NLS-1$

}

}

public class Class1 extends BaseClass {

public T getTwo() {

return new Class2();

// Error: Type mismatch: cannot convert from Class2 to T

}

public static void main(String[] args) {

Interface two = new Class1().getTwo();

// Error: Bound mismatch: The generic method getTwo() of type Class1 is

// not applicable for the arguments (). The inferred type Interface is

// not a valid substitute for the bounded parameter

你可能感兴趣的:(java,方法参数限制)