gpt4 book ai didi

java - 获取与 extends ArrayList 一起使用的类型的类名?

转载 作者:行者123 更新时间:2023-11-29 07:21:13 25 4
gpt4 key购买 nike

我有以下内容:

public class Foo<T extends Grok> extends ArrayList<T> {

}

如何在运行时找到T代表的类名?例如,假设我这样分配:

Foo<Apple> foo = new Foo<Apple>();

有没有办法让 Apple 作为 Foo 的构造函数中使用的类名?:

public Foo() {
super();

String classname = this.getTypeClassName(); // "com.me.Apple"
}

我可以只添加一个方法来设置类名,但更愿意在内部获取它,这样用户就不必这样做了,

谢谢

最佳答案

由于类型删除(Java 泛型模型的缺陷之一),这在一般情况下是不可能的。如果向 foo 传递一个 T 的实例,它可以检查该实例的类型,但不能保证它就是 T 而不是派生类型。由于您正在尝试访问构造函数中的类型,此时它不可能持有这样的实例,因此您必须通过构造函数传入一个苹果。

关于java - 获取与 extends ArrayList<T> 一起使用的类型的类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4189557/

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