java - 将 Long 参数传递给具有签名的方法 findResults(String prop, Object val) 转换为 Integer 数据类型
问题描述
我有一个这样定义的方法:
findResults(String prop, Object val) {
if(val instanceof String)
//process String stuff
else if(val instanceof Long)
//process Long stuff
else
//process other stuff
}
当我将 Long 参数传递给上述方法时
findResults(query, 5L);
它被转换为 Integer 数据类型并执行最后一个 else 条件。即使传递参数 asLong.parseLong("5")
也不起作用。如何在 java 中将 Long 值作为参数传递?
更新:错误详情:
java.lang.IllegalArgumentException: Parameter value [5] did not match expected type [java.lang.Long (n/a)]
at org.hibernate.query.spi.QueryParameterBindingValidator.validate(QueryParameterBindingValidator.java:54)
at org.hibernate.query.spi.QueryParameterBindingValidator.validate(QueryParameterBindingValidator.java:27)
....
解决方案
我不明白出了什么问题:
以下代码按预期打印“Long”!
public static void main(String[] args) {
findResults("String", 5L);
}
static void findResults(String prop, Object val) {
if(val instanceof String)
System.out.println("String");
else if(val instanceof Long)
System.out.println("Long");
else
System.out.println("Other");
}
推荐阅读
- r - 需要 R 函数来比较一个文件中的缺失值并在另一个文件中更新
- python - 使用 psycopg2 的“ELF 文件操作系统 ABI 无效”
- ffi - 如何将函数分配给 Rebol 结构成员
- javascript - js切换多个div
- android-tv - 将 android TV 应用程序部署到 beta 测试人员的好方法是什么
- css - 在角度模态动画中实现缩放效果
- oracle - PL/SQL 连接
- jquery - 如何从 CSV AJAX 请求修改 DataTables 列?
- python - Pandas datetime:找到日期时间后第一个日期的正确年份
- oracle - 如何从一个 dbms_sql.number_table 中选择另一个