首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回参数化类的JDBI3

返回参数化类的JDBI3
EN

Stack Overflow用户
提问于 2021-04-23 22:22:57
回答 1查看 42关注 0票数 0

我有一个抽象的EntryPoint类,如下所示:

代码语言:javascript
复制
public abstract class EntryPoint<T extends Tag> implements Serializable {

    public EntryPoint(){}

    protected ArrayList<T> tiedTags;

    public abstract ArrayList<T> getTiedTags();
    public abstract void setTiedTags(List<T> tiedTags);

}

然后我有了这个EntryPoint类的子类,每个子类只接受一种标记。例如,SNMPEntryPoint只存储SNMPTags。这些子类提供抽象方法的实现:

代码语言:javascript
复制
public class SNMPEntryPoint extends EntryPoint<SNMPTag> implements Serializable {

    //Default Constructor for Serialization
    public SNMPEntryPoint(){}

    @Override
    public ArrayList<SNMPTag> getTiedTags(){ return tiedTags; }

    //etc

}

有没有办法创建一个返回参数化类列表的JDBI查询?目前,这是我正在做的事情:

代码语言:javascript
复制
public List<SNMPEntryPoint> getSNMPEntryPoints(){
    try(Handle handle = daoFactory.getDataSourceController().open()) {
        return handle.createQuery("SELECT * FROM dbo.EntryPoints WHERE Active = 1 AND SiteID = :sID AND Protocol = 'SNMP'")
                .mapToBean(SNMPEntryPoint.class)
                .list();
    }
    catch(Exception e){
        if(sysconfig.getVerbose()){ e.printStackTrace(); }
    }
    return null;
}

但这感觉就像是对这个类的原始使用。所以我想我的问题是,如果我使用这段代码生成SNMPEntryPoints,然后在这些EntryPoints上调用getTiedTags或setTiedTags,这会起作用吗?我以这种方式创建SNMPEntryPoint对象是否违反了任何编码约定?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-25 06:43:02

只是想了结这件事。我的类实际上并不是参数化的。正如你在上面看到的,他们扩展了参数化的抽象类,但是SNMPEntryPoint实际上并不接受任何参数,所以没有必要做任何与我上面所做的不同的事情。

但是,if you do need to return a parameterized generic from JDBI you can do so using the details found here.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67231721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档