gpt4 book ai didi

java - 从子类的提供者构造父类(super class)提供者

转载 作者:行者123 更新时间:2023-12-01 05:23:28 25 4
gpt4 key购买 nike

我有一个父类(super class),它有自己的嵌套类,该类在构造函数中传递(/作为提供者注入(inject))。

类似地,我有一个子类,它有自己的嵌套类,它被注入(inject)(作为提供者)在构造函数中。 Subclass.NestedClass 扩展了 Superclass.NestedClass。

public class SuperClass {
@Inject SuperClass(Provider<SuperClass.Parameters> superParam) {
}

public class Parameters {
int a;
}
}

public class Sub extends SuperClass {
@Inject Sub(Provider<Sub.Parameters> subParam) {
// Need to call super here with the appropriate superclass's provider
}

public class Parameters extends SuperClass.Parameters {
int b;
}
}

有没有办法可以将 Sub.Parameters 的提供程序转换为 SuperClass.Parameters 的提供程序,以便我可以在 Sub 的构造函数中调用 super(使用该提供程序)。

最佳答案

Java 泛型在这里帮助了我。

解决方案:

public class SuperClass {
// Constructor
@Inject SuperClass(Provider<? extends SuperClass.Parameters> superParam) {
}

public class Parameters {
int a;
}
}

public class Sub extends SuperClass {
@Inject Sub(Provider<Sub.Parameters> subParam) {
super(subParam);
}

public class Parameters extends SuperClass.Parameters {
int b;
}
}

观察父类(super class)构造函数的参数“? extends”的差异。

关于java - 从子类的提供者构造父类(super class)提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022324/

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