有没有办法警告其他开发人员功能?

时间:2019-04-10 14:43:08

标签: java android kotlin

我希望开发人员能够使用该功能,但我希望他们知道大多数情况下不打算使用该功能。

有没有一种方法可以警告其他开发人员有关功能的信息。类似于皮棉所做的。该方法是否有类似@Warning("Prefer using #fooo() if possible)的注解? 我想知道如何做java或kotlin。类似于@Deprecated,但在我的上下文中更有意义。

我希望我的IDE也意识到该警告,而不仅仅是编译器。

4 个答案:

答案 0 :(得分:1)

这是我的看法,可能被认为完全不正确。您可以使用@Deprecated获得相同的结果:

@Deprecated("test_only")
fun getNumberFormatterInstanceForTesting(context: Context, localeCode: String): NumberFormat {
        if (!::numberFormat.isInitialized) numberFormat = NumberFormat.getCurrencyInstance(parseLocaleCode(localeCode))
        return numberFormat
}

更多示例:

@VisibleForTesting
@Deprecated("Test ONLY, DO NOT use in production")
constructor(application: Application) : this(null, application)

答案 1 :(得分:0)

可悲的是,我认为这是不可能的,但这取决于您使用的IDE,没有本机的Java方法可以使该方法显示警告,您必须对IDE的代码分析器进行更改才能获得所需的内容

答案 2 :(得分:0)

假设您有一个foo.bar()进行委派:

foo.special.bar()
foo.special().bar()

这样可以标记“特殊”成员,查找用法。 需要重构。

这有点像特定业务对象的吸气剂:

foo.getBazBO().bar()

一种替代方法是使用您自己的注释,使用Doxygen或其他一些注释处理,在IDE编程上投入精力。更多的努力,更少的即时结果。

答案 3 :(得分:0)

您可以使用Kotlin的@Experimental批注:

https://kotlinlang.org/docs/reference/experimental.html#experimental-status-of-experimental-api-markers

这将使此类功能的使用者需要明确的选择加入,并且您可以在标记的传播和不传播之间进行选择。

请注意,从Kotlin 1.3开始,@Experimental注释本身是实验性的。