【问题标题】:Scaladoc link to another methodScaladoc 链接到另一种方法
【发布时间】:2016-03-24 05:46:15
【问题描述】:

我的伴生对象(model.Product)有两种方法:

def apply(p:ProductSyntax)(rs: WrappedResultSet): Product
def apply(p: ResultName[Product])(rs: WrappedResultSet): Product

第一种方法委托给第二种方法,我想在文档中指出这一点。我尝试使用:

/**
 * delegates to [[apply]]
 * /

但 scaladoc 抱怨这是模棱两可的,但告诉我

(p: scalikejdbc.ResultName[model.Product])(rs: scalikejdbc.WrappedResultSet): model.Product in object Product

是一种选择

但是我不知道如何告诉 scaladoc 使用这种方法。我试过了

/**
 * Delegates to [[apply(scalikejdbc.ResultName[model.Product])(scalikejdbc.WrappedResultSet):model.Product]]
 * /

但它告诉我找不到成员:

Could not find any member to link for "apply(scalikejdbc.ResultName[model.Product])(scalikejdbc.WrappedResultSet):model.Product".

如何添加指向def apply(p: ResultName[Product])(rs: WrappedResultSet): Product 方法的链接?

【问题讨论】:

  • 尝试转义:[[apply(p:scalikejdbc\.ResultName[model\.Product])(rs:scalikejdbc\.WrappedResultSet):model\.Product$]]。一般来说,不是您的对象成员的所有内容都需要完全限定,并且您需要在末尾添加一个 $ 来标记签名的结尾。
  • 遗憾的是我得到了同样的错误:找不到任何要链接的成员“应用(p:scalikejdbc\.ResultName[model\.Product])(rs:scalikejdbc\.WrappedResul‌​tSet):型号\.Product$".

标签: scala scaladoc


【解决方案1】:

这就是我发现的:

  1. 一切都必须是完全限定的,甚至是类/对象本身

  2. 包点应该用 \

  3. 转义
  4. 您不能在签名中使用任何空格

  5. 参数应包括名称而不仅仅是类型,即 foo(a:String) 而不是 foo(String)

  6. 签名应以 * 结尾

终于成功了:

[[apply(p:scalikejdbc\.ResultName[model\.Product])(rs:scalikejdbc\.WrappedResultSet):model\.Product*]]

但是...反斜杠转义和 * 也出现在生成的 html 中!

【讨论】:

  • 啊,我怀疑你需要添加对象。但是,您可以通过在签名后指定一个标签来美化链接,并用空格分隔,例如:[[apply(p:scalikejdbc\.ResultName[model\.Product])(rs:scalikejdbc\.WrappedResultSet):model\.Product* apply(ResultName[Product]):Product]]。不过,您可能也必须在那里逃脱。
  • 我想表达我对 Scaladoc 的彻底失望。这种事情会避开好的文档。
  • 在尝试链接到像[[amf\.client\.remod\.AMFResult*]]这样的另一个类时,甚至这些规则都不起作用
猜你喜欢
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 2012-05-12
  • 2017-10-30
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
相关资源
最近更新 更多