当前位置: 首页 > 知识库问答 >
问题:

Java方法确实返回与其声明不同的对象

常永长
2023-03-14

我有一个java方法,它返回一个可选值

可选

在实现中,有一个nativeQuery,它计算数据库中的结果:

  hqlBuilder.append("SELECT count(r.id)");
  hqlBuilder.append(" FROM RELATION r");
  hqlBuilder.append(" WHERE r.a = :a AND r.b = :b");
  final Query<Long> query = this.getCurrentSession().createNativeQuery(finalQuery);
            query.setParameter("a", a);
            query.setParameter("b", b);
            return query.uniqueResultOptional();

但是,当我执行方法测试时,它返回一个可选

之后,我用Optional为自己做了一个测试

如何绕过方法返回而不中断执行?

编辑:这是调试器:


共有2个答案

萧英光
2023-03-14

运行时没有出现强制转换问题的原因是由于类型擦除,您可以在文档或其他讨论中了解此功能。这种机制实际上在编译时删除泛型类型参数,这意味着在运行时它是未知的。

太叔京
2023-03-14
You can convert Optional<BigInteger> to Optional<Long>:

Optional<Long> longOpt = Optional.of(new BigInteger("0")).map(BigInteger::longValue);

return query.uniqueResultOptional().map(BigInteger::longValue);
 类似资料:
  • 然后mocked repository返回传递给它的内容,我可以轻松地测试它。 有什么想法吗?如何强制mockito返回?

  • 本文向大家介绍JAVA利用泛型返回类型不同的对象方法,包括了JAVA利用泛型返回类型不同的对象方法的使用技巧和注意事项,需要的朋友参考一下 有时需要在方法末尾返回类型不同的对象,而return 语句只能返回一个或一组类型一样的对象。此时就需要用到泛型。 首先先解释个概念, 元组:它是将一组对象直接打包存储于其中的一个单一对象,这个容器对象允许读取其中元素,但不能修改。 利用泛型创建元组 测试 输出

  • 问题内容: 我们现在正在学习如何使用多个类,并且有一个项目要求创建一个包含a 和a的类,然后从主类中引用它以找到直径。此代码继续收到错误(标题中提到) 感谢您的帮助,-AJ 更新1 :好的,但是我不必将第三行声明为double,对吗?在我正在学习的书中,该示例没有做到这一点。 如您所见,该代码与我在我的代码中有什么不同?无论出于什么原因,本书的代码中都没有错误,但是我的说法是那里有错误。 问题答案

  • 我正在尝试实现和重写具有不同返回类型的方法,而不会被迫转换返回类型。 我的问题:是否可以在不强制强制转换的情况下返回不同的类型?解决这个问题的抽象方法看起来怎么样? 我认为必须有一个解决方案,因为编译器应该知道返回类型...

  • 问题内容: 这个问题在Google上到处都有,但我仍然遇到问题。这就是我想要做的。因此,就像标题状态一样,我遇到了“对象不是声明类的实例”错误。有任何想法吗?谢谢! Main.java TestFunction.java 问题答案: 您正在使用该类调用该方法,但需要一个实例。试试这个:

  • 我刚开始学Java。下面是我尝试在Intellij上运行的代码。我没想到下面的代码在执行时会有问题,因为我复制和粘贴的代码100%相似。从学习材料中可以看出,它应该工作得很顺利。我想知道这里出了什么问题?谢谢,我希望有人能向我澄清。