【发布时间】:2018-05-11 09:31:25
【问题描述】:
我可以在编译时阻止从现有 Java/Scala 类调用选定的方法吗?所以试图调用禁止方法的代码将无法编译。
我有一个使用以下方法的现有 Scala 类(来自外部库)
def saveToDb[A](a: A)
但不幸的是,当 a 无法保存到数据库时,它会引发异常。由于我想在编译时检测到这种情况,我可以写
def safeSaveToDb[A: CanBeSavedToDb](a: A)
其中类型类实例保证a可以保存到数据库并且不抛出异常。现在可以防止使用saveToDb。
【问题讨论】:
-
尝试制作
class A成员transient -
如果你使用 Maven 作为构建工具,那么你可以使用
pmd来设置使用规则。 -
@SarveshKumarSingh 如果我在 Scala 中找不到任何解决方案,也许这就是要走的路
标签: scala