0

我正在按照Hadley 的指南实施 DBI 后端,该指南指示我构建从 DBI 类继承的 S4 类。

根据说明,要使 DBI 类可用,似乎我只需DBI在文件中列出作为导入DESCRIPTION

但是,即使这样做,我仍然会收到错误消息

 Error in reconcilePropertiesAndPrototype(name, slots, prototype, superClasses,  : 
  no definition was found for superclass “DBIDriver” in the specification of class “KazamDriver” 

如果我明确附加DBIlibrary那么这个问题就会消失,但当然不应该library在包代码中使用。

我的代码:

# DBI-backend.R 
setClass("KazamDriver", contains = "DBIDriver")

# DESCRIPTION
Imports:
  DBI (>= 0.3.0),
  methods
4

1 回答 1

1

描述文件中的 Imports 字段实际上并不导入任何内容。它仅确保在用户安装您的软件包时安装列出的软件包。

相反,请使用 NAMESPACE 使其他包或功能可在您的包中使用。此外,不要手动编辑 NAMESPACE,而是使用 Roxygen2(详情请点击此处)。

对于这种特殊情况,这意味着

#' @import DBI
setClass("KazamDriver", contains = "DBIDriver")
于 2017-07-01T19:40:38.513 回答