gpt4 book ai didi

java - 如何在Java中获取类型参数

转载 作者:行者123 更新时间:2023-12-03 23:14:57 24 4
gpt4 key购买 nike

我有一个实体如下:

public class Test extends AbstractEntity<Long> implements IHasDate { ... }

它是如下的 DAO:

public class TestDAO extends AbstractDAO<Test, Long> { ... }

AbstractDAO 中,我想测试传递的类型参数 Test 是否是 IHasDate 的实例。

这是 AbstractDAO 的定义:

public abstract class AbstractDAO<T extends AbstractEntity<ID>, ID extends Serializable> { 
public void test(){
// Here I want to test if the passed type parameter is an instance of IHasDate.
}
}

我该如何解决这个问题?

最佳答案

如果您只想确保正确绑定(bind)您的泛型,那么这根本就没有必要。

无需检查 AbstractDAO 内部的类型,您需要将 AbstractDAO 绑定(bind)到 IHasDate,尽管这很笨拙。这意味着任何扩展 IHasDate 的实体试图使用它都将无法编译。

abstract class AbstractDAO<T extends AbstractEntity<ID> & IHasDate, ID extends Serializable> {
public void test(){

}
}

如果您创建绑定(bind)到 IHasDate 的不同 DAO,则使用上面的方法可以实现类似的目标。

abstract class IHasDateDao<T extends AbstractEntity<ID> & IHasDate, ID extends Serializable> extends AbstractDAO<T, ID> {
}

关于java - 如何在Java中获取类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50841606/

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