我希望开发人员能够使用该功能,但我希望他们知道大多数情况下不打算使用该功能。
有没有一种方法可以警告其他开发人员有关功能的信息。类似于皮棉所做的。该方法是否有类似@Warning("Prefer using #fooo() if possible)
的注解?
我想知道如何做java或kotlin。类似于@Deprecated,但在我的上下文中更有意义。
我希望我的IDE也意识到该警告,而不仅仅是编译器。
答案 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
批注:
这将使此类功能的使用者需要明确的选择加入,并且您可以在标记的传播和不传播之间进行选择。
请注意,从Kotlin 1.3开始,@Experimental
注释本身是实验性的。