gpt4 book ai didi

java - java中的泛型方法错误

转载 作者:行者123 更新时间:2023-12-01 15:44:15 26 4
gpt4 key购买 nike

package com.openwaf.test.basic;
public class MethodArgumentTest {
static interface Inf{}
static class One<E extends Inf > implements Inf{
public <T extends One> T get(T k){
return k;
}
}
static class Two<E extends Inf> extends One<E>{ }
public static void test(){
One o=new One<Inf>();
Two t=new Two<One>();
o.<Two>get(t);
}
}

以上代码仅用于测试目的。恕我直言,它应该可以毫无问题地编译,但是 java 编译器说

MethodArgumentTest.java:15: get(com.openwaf.test.basic.MethodArgumentTest.One) in com.openwaf.test.basic.MethodArgumentTest.One cannot be applied to (com.openwaf.test.basic.MethodArgumentTest.Two)

o.get(t);

1 error

有人可以帮我吗?

最佳答案

好吧,正如你所说,这只是为了测试,我不会问这段代码有什么用。下面的代码可以编译,但仍然会产生警告。您没有足够地定义泛型:

public class MethodArgumentTest {
static interface Inf {
}

static class One<E extends Inf> implements Inf {
public <T extends One<E>> T get(T k) {
return k;
}
}

static class Two<E extends Inf> extends One<E> {
}

public static void test() {
One<Inf> o = new One<Inf>();
Two<One<Inf>> t = new Two<One<Inf>>();

o.<Two> get(t); /* unchecked warning */
}
}

关于java - java中的泛型方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7434773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com