java - 如何在 Java 函数中将类作为参数发送?
问题描述
我用它的变量创建了不同的类,我正在尝试创建一个在 SQL 数据库中创建表的 Java 程序。问题是我不知道如何将类作为函数中的参数发送。
我正在研究这个功能:
public void createTable (/*Class c ?*/) {
ArrayList<String> fields = new ArrayList<>();
for (Field f: c.class.getDeclaredFields()) {
fields.add(f.getName());
}
Statement statement;
statement = connection.createStatement(); //This part of the function wouldn't work. But let's focus on the question
statement.execute("insert into " + c.getSimpleName() + "(" + String.join(", ", fields) + ") values" etc...
}
请注意,我想将数据插入 SQL 数据库的函数的第二部分将无法工作,因为它尚未完成。但是,我怎么能在这个函数中接收不同的类(显然有不同的变量)并对所有类做同样的事情?(创建一个带有其字段名称的列表)。
解决方案
这很简单,只需重构如下:
public void createTable (Class c) {
ArrayList<String> fields = new ArrayList<>();
for (Field f: c.getDeclaredFields()) {
fields.add(f.getName());
}
Statement statement;
statement = connection.createStatement(); //This part of the function wouldn't work. But let's focus on the question
statement.execute("insert into " + c.getSimpleName() + "(" + String.join(", ", fields) + ") values" etc...
}
推荐阅读
- java - 用 sql 表的数据类型创建一个对象
- inheritance - 为什么子类不继承构造函数?
- swift - 如何在 SwiftUI 中构建 NumberField?
- python - OSError: [Errno 25] 设备的 ioctl 不合适
- shell - 语法错误:Linux shell 脚本中的循环变量错误
- reactjs - 从 API 获取 React 下拉列表
- python - 如何使用 Python 解析 XSD 文件
- go - 强制 goroutine 每秒运行 X 次
- html - 如何让 flex 容器不缩小内容更多的项目?
- azure - 使用永久 SAS 为从 blob 存储到 Azure 数据库的 BULK INSERT 创建范围凭据