在 kotlin/java 中匹配方法名称



我正在玩ObjectAnimator,我创建了一个简单的可绘制对象。

// In my drawable file
fun setMyCustomParameter(...) {
blah blah blah
}

要运行动画,我有以下对象动画器:

val orreryAnimator = ObjectAnimator.ofObject(
myDrawable,
"MyCustomParameter",
drawableEvaluator, // irrelevant
startValues, // irrelevant 
endValues // irrelevant
)

现在"MyCustomParameter"是一个硬编码的字符串值,我将其与我的方法setMyCustomParameter匹配。问题是,如果我不想手动匹配它,因为如果我不小心拼错了,那么代码仍然会运行,除了动画将不起作用。我想问有没有办法将方法setMycustomParameter为字符串,以便我可以保证即使我稍后更改方法名称,代码也会运行,而无需记住更改字符串值。

你可以:myDrawable::setMyCustomParameter将为您提供对该方法的引用,该方法的名称为 :myDrawable::setMyCustomParameter.name。 请参阅文档中的可调用引用。

另外,如果您有getMyCustomParametersetMyCustomParameter,您可能希望将其修改为具有自定义 getter 和 setter 的属性:

var myCustomParameter: Type
get() = ...
set(value: Type) { ... }

最新更新