- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个将使用 DbUtils' 的通用 JavaFX 服务
BeanListHandler
将 ObservableList
返回给应用程序 GUI 线程。目的是重用它以将许多表加载到不同 bean 类的许多不同列表中。
我遇到的问题是处理 Task
的 call()
方法中的泛型。
ICINGBean
是一个抽象类,我处理的所有 bean 都继承自 extend。
public class StaticDataFetcher extends Service<ObservableList<? extends ICINGBean>> {
private Class<? extends ICINGBean> beanClass;
@Override
protected Task createTask() {
DataGetter dget = new DataGetter();
dget.setBeanClass(beanClass);
return dget;
}
public Class<? extends ICINGBean> getBeanClass() { return beanClass; }
public void setBeanClass(Class<? extends ICINGBean> beanClass) { this.beanClass = beanClass; }
}
class DataGetter extends Task<ObservableList<? extends ICINGBean>> {
private Class<? extends ICINGBean> beanClass;
@Override
protected ObservableList<? extends ICINGBean> call() {
ObservableList<? extends ICINGBean> staticList;
staticList = FXCollections.observableArrayList();
ResultSetHandler<List<? extends ICINGBean>> handler;
handler = new BeanListHandler<? extends ICINGBean>(beanClass);
try {
List<? extends ICINGBean> resultList;
resultList = EntryPoint.getQRunner().query("SELECT * FROM ?", handler, beanClass.getSimpleName());
staticList = FXCollections.observableList(resultList);
} catch (SQLException ex) {
Logger.getLogger(DataGetter.class.getName()).log(Level.SEVERE, null, ex);
}
return staticList;
}
public Class<? extends ICINGBean> getBeanClass() { return beanClass; }
public void setBeanClass(Class<? extends ICINGBean> beanClass) { this.beanClass = beanClass; }
}
我得到的编译时错误是:
.../ICING/src/com/cccg/icing/StaticDataFetcher.java:55: error: unexpected type
handler = new BeanListHandler<? extends ICINGBean>(beanClass);
^
required: class or interface without bounds
found: ? extends ICINGBean
我很确定我只是把泛型处理搞砸了,但我不确定怎么做。我关注了 listed example在使用 BeanListHandler 的 DbUtils 示例页面上,用它替换了我认为适合使用泛型类型的地方,但我在错误上一无所获。
非常感谢任何帮助,谢谢!
根据下面 Paul Bellora 的有用建议,我能够解决这个问题。我为该类声明了一个类型参数,并将其与菱形运算符一起使用。
public class StaticDataFetcher<T extends ICINGBean> extends Task<ObservableList<? extends ICINGBean>> {
private Class<T> beanClass;
//...
public StaticDataFetcher(Class<T> beanClass) {
super();
this.beanClass = beanClass;
}
protected ObservableList<? extends ICINGBean> call() {
//...
ResultSetHandler<List<T>> handler;
handler = new BeanListHandler<>(beanClass);
//...
}
}
感谢大家的帮助,希望对大家有帮助!
最佳答案
不允许使用通配符类型参数实例化泛型类型。在 this answer 中查看我对原因的解释.
一个简单的解决方案是使用 diamond operator (Java 7 及更高版本):
handler = new BeanListHandler<>(beanClass);
如果那不可用,您需要使用通用辅助方法:
<T extends ICINGBean> BeanListHandler<T> makeContainer(Class<T> beanClass) {
return new BeanListHandler<T>(beanClass);
}
...
handler = makeContainer(beanClass);
关于java - 使用 DbUtils BeanListHandler 在可重用 JavaFX 数据检索服务上摸索通用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15777282/
我按照此处的文档将 Azure Blob 存储容器安装到 Databricks: https://docs.databricks.com/_static/notebooks/data-sources/
我正在使用 apache dbutils。我有一个带有 java.util.Date 属性的对象。当我执行以下代码时,sql 失败 从 myTable 中选择名称、开始日期 try {
我是 Python 新手,需要 Databricks 方面的帮助。 我需要使用 Python 将文件从 Azure Blob 简单复制到 ADLS。 我需要 Python 文件中的代码,并且需要从 D
我有一个实例化单个 QueryRunner 的网络服务在初始化时使用数据源。它通过将这个 QueryRunner 对象作为 servlet 上下文属性传递给 webapp 使用的多个不同 servle
我在一个容器下有三个文件夹 文件夹结构 folder1 |_ file1.json |_ file2.json folder2 |_ sub-folder1 |_
我正在尝试使用 Jupyter Notebook Python 脚本(在 Docker 上运行)中的 DBUtils 和 Pyspark 来访问 Azure Data Lake Blob。但是,我似乎
我们需要使用第三方库来执行 SQL 语句,在开始实现之前,我们希望确保该库可以执行我们想要的任何操作。我们目前正在评估 Apache DBUtils。 我们尝试执行类似的查询 INSERT INTO
我有一个用于 jdbc 的 DBUtil 类,有一些方法,如查询、插入和更新,当发生一些错误时,我们现在抛出 RuntimeException,但我有一些问题。 当错误发生时,如果我不使用 try c
我正在尝试使用 ResultSetHandler 将学生列表传递给 servlet,但出现以下错误 java.lang.NumberFormatException: For input string:
我开始使用 DBUtils 库,但我的大多数查询都是“INSERT ON DUPLICATE KEY UPDATE”,我进行了研究,但没有找到有关如何使用 QueryRunner 对象实现该操作的信息
我发誓我以前做过这个并且效果很好,但似乎在我的查询(下面)中我无法映射同名的两列(在本例中为“电子邮件”),即使使用我查询中的“as”。我也尝试过不使用“as”——只使用“u.email assess
apache dbutils库是否可以调用oracle存储过程? 最佳答案 是的: QueryRunner run = JDBCConnectionFactory.getQueryRunner(dat
我需要使用 DBUtils 获取标量值,有人知道如何获取吗?目前我这样做: String sql = "SELECT count(*) FROM t1 WHERE cod = ?";
有人可以让我知道如何使用 databricks dbutils 从文件夹中删除所有文件。 我尝试了以下但不幸的是,Databricks 不支持通配符。 dbutils.fs.rm('adl://azu
我们如何尝试使用它? 将依赖项“com.databricks”%%“dbutils-api”%“0.0.1”添加到build.sbt 用代码编写: 导入 com.databricks.dbutils_
我找不到如何使用 DBUtils 来调用可调用语句 我们可以如何指定哪些所有字段都是输入以及哪些所有字段都是输出? 最佳答案 您只需要使用CallableStatement Connection co
Apache DBUtils 的 BeanHandler 在使用 SELECT 查询时可以方便地将数据映射到 Bean 中。但是,在写入数据时似乎不能做到同样的事情,所以我需要使用一种容易出错的方式:
我正在尝试使用 SQL Server 数据库上的 queryrunner 接口(interface)从列表中检索多条记录。似乎正常方法有效时接口(interface)会抛出错误。 private vo
我正在 Spring Framework 中创建 MVC Web 应用程序,我需要将 Apache DBUtils 结果集中的行转换为由嵌套对象组成的 JavaBeans。 关于我发现的极少数示例,我
我一直在尝试了解如何使用结果集中的数据填充 jtable,并发现使用 DBUtils 可能是最简单的方法,但不幸的是它根本不适合我。程序运行,但 jtable 仍然是空的。我不明白我哪里出了问题。我有
我是一名优秀的程序员,十分优秀!