kotlin / java中的匹配方法名称

时间:2018-09-21 05:10:51

标签: android kotlin

我正在玩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用作字符串,这样即使在以后在代码上更改方法名称的情况下,我也可以保证即使我在运行时也不必记住更改字符串值。 / p>

1 个答案:

答案 0 :(得分:2)

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

此外,如果您有getMyCustomParametersetMyCustomParameter,则可能需要将其修改为具有自定义getter and setter的属性:

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