我有一个正在为Kotlin用户开发的库,并且我还支持Java。
我的功能之一是“添加” 看起来类似于
open fun add(element: T, position: Int = elements.size) {
elements.add(position, element)
if (!updateUi) return
if (isUiThread()) notifyItemInserted(position) else throw uiThreadException
}
这很棒,为了使它更酷,我为口语的“添加”功能添加了一个运算符重载功能,如下所示:
open operator fun plus(element: T): Unit = add(element)
问题是当Java用户使用它时,它看起来像一个重复的函数,可能会引起一些混乱
科特琳:
someClass.add(item)
someClass + item
Java:
someClass.add(item);
someClass.plus(item);
在Java版本中,不清楚应该使用哪个版本,我想为Java用户隐藏它。
我尝试使用@JvmName
更改名称,但是如果该功能是我希望使用的“开放功能”,则无法使用它,因为如果那样的话,我想让用户可以更改它欲望。
我可以隐藏它吗?如果没有其他解决方案,将不胜感激。