gpt4 book ai didi

java - Scala:实现 Java 接口(interface)导致类型不兼容

转载 作者:行者123 更新时间:2023-11-30 06:24:18 27 4
gpt4 key购买 nike

我有一个 Java 接口(interface),我想在 Scala 中实现它。该接口(interface)包含以下方法声明:

  public Boolean existsTable(String tableId);

我的 Scala 实现是:

  override def existsTable(tableId: String): Boolean = {
val dbmeta = connection.getMetaData()
val dbtables = dbmeta.getTables(null, null, channelId, null)
if (dbtables.next())
// table exists
return true
else
return false
}

出于某种原因,我得到了错误“在特征 xyz 中重写方法 existsTable 类型 (tableId: String)Boolean;方法 existsTable 具有不兼容的类型”

但我真的不知道哪里可能存在不兼容的类型,因为它只是一个返回类型的 boolean 值?

问候。

PS:当我没有实现一个接口(interface)时,我曾经以确切的方式使用过这个方法,所以方法本身应该没有错误。只是在 Scala 中实现 Java 接口(interface)让我很为难。

最佳答案

如评论中所示,这不起作用的原因是 Scala 的 boolean 值与 Java 的 boolean 值不同。解决此问题的快速方法是:

import java.lang.{Boolean => JBoolean}

override def existsTable(tableId: String): JBoolean

通过为类型设置别名,可以更清楚地了解您要返回的内容。您当然可以将其定义为:

override def existsTable(tableId: String): java.lang.Boolean

关于java - Scala:实现 Java 接口(interface)导致类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089760/

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