gpt4 book ai didi

java 。从抽象集合的ArrayList生成swt.table

转载 作者:行者123 更新时间:2023-11-30 10:44:26 25 4
gpt4 key购买 nike

美好的一天。

我的情况如下:

我有一些数据库实体类( AutoDriverBill 等)及其一些字段。我可以从我的数据库中获取它们的 ArrayList - ArrayList<Auto> , ArrayList<Driver>

现在我希望能够从我拥有的任何集合中生成 swt 表。所以,在我的梦想中,它就像是所有类集合的一种通用方法。

public class TableGenerator{
public Table generate(Shell shell, ArrayList<? extends IDBEntity> instance){
//swt.table creation
//passing data into this table
}
}

所以。问题是“我可以这样做吗?那么如果我可以怎么做呢?”和“这种方式是否值得实现,或者我应该为不同的类制作不同的方法吗?”。

感谢您的任何意见和建议。

最佳答案

实现此目的的一种方法是使用访问者模式

  1. 创建一个Visitor界面:

    public interface DBEntityVisitor {
    void visit(Auto pAuto);
    void visit(Driver pDriver);
    void visit(Bill pBill);
    }
  2. 进入IDBEntity界面,添加方法:

     void accept(DBEntityVisitor pDBEntityVisitor);
  3. 现在转到具体类 AutoBillDriver 并实现 accept 方法:

      @Override
    public void accept(DBEntityVisitor pDBEntityVisitor) {
    pDBEntityVisitor.visit(this);
    }
  4. 在您的TableGenerator中:

       public Table generate(Shell shell, ArrayList<IDBEntity> instance){
    DBEntityVisitor lVisitor = new DBEntityVisitor() {

    @Override
    public void visit(Auto pAuto) {
    System.out.println("I am a car");
    }

    @Override
    public void visit(Driver pDriver) {
    System.out.println("I am a driver");
    }

    @Override
    public void visit(Bill pBill) {
    System.out.println("I am a bill");
    }
    };
    for(IDBEntity lInstance : instance){
    lInstance.accept(lVisitor);
    }
    }

关于 java 。从抽象集合的ArrayList生成swt.table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37390296/

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