我有一个实体如下:
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.
}
}
我该如何解决这个问题?
答案 0 :(得分:0)
如果你想要做的就是确保你的通用符合正确,这根本就没有必要。
不是检查AbstractDAO
内部的类型,而是需要AbstractDAO
到IHasDate
的约束,尽管这很笨拙。这意味着不扩展IHasDate
试图使用它的任何实体将无法编译。
abstract class AbstractDAO<T extends AbstractEntity<ID> & IHasDate, ID extends Serializable> {
public void test(){
}
}
如果您创建一个绑定到IHasDate
的不同DAO,使用上述内容可以实现类似的目标。
abstract class IHasDateDao<T extends AbstractEntity<ID> & IHasDate, ID extends Serializable> extends AbstractDAO<T, ID> {
}
答案 1 :(得分:-3)
您可以使用方法实例
if(yourObject instanceof yourClass){
...
}