gpt4 book ai didi

Java通用用法问题

转载 作者:行者123 更新时间:2023-12-02 00:49:08 27 4
gpt4 key购买 nike

说我想做类似的事情

public class Container<C extends Member> {

public void foo() {
C newC = new C();
}
}

我意识到这行不通,但是正确的 Java 习惯用法是什么?

最佳答案

泛型类型 C 在运行时被删除为 java.lang.Object。无法实例化已删除的泛型类型。看起来更像是您想要某种工厂创建模式?

abstract class MemberFactory {
public static <T> Member create(Class<T> memberClass) throws Exception {
return memberClass.newInstance();
}
}

Member premiumMember = MemberFactory.create(PremiumMember.class);

如果是这种情况,您可能需要考虑使用依赖项注入(inject)和框架,例如 Spring 或 Guice。

关于Java通用用法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949892/

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