gpt4 book ai didi

java - 一旦父类具有泛型,泛型类型就会丢失

转载 作者:行者123 更新时间:2023-12-01 22:40:37 25 4
gpt4 key购买 nike

我有一个像下面这样的类(class)。我的问题是,一旦我将泛型类型放在父类上,它将导致我拥有的“嵌套”属性生成器出现编译错误。如果我删除父类中的泛型类型,它就可以正常工作。知道如何克服这个问题吗?

package com.mlp.raptor.cmf;

import java.util.function.Consumer;

public class Builder<T extends Builder>{

public T newattr(String value){
return (T)this;
}

public static class subBuilder{

public subBuilder attrraw(String value){
return this;
}

}

public T subList(Consumer<subBuilder>... value){
return (T)this;
}

public static void main(String [] args)throws Exception{
Consumer<subBuilder> s = d -> d.attrraw("dd");
new Builder().newattr("test").subList(s);
new Builder().subList(z -> z.attrraw("dd")); //compile issue
}

}

最佳答案

您正在使用 Builder 的原始实例,钻石应该在这里有所帮助:

new Builder<>().subList(z -> z.attrraw("dd"));
↑↑

现在您应该会收到一些编译器警告,但这是另一回事,可以通过仔细定义类型参数来轻松解决。

关于java - 一旦父类具有泛型,泛型类型就会丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58499551/

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