类方法的noSuchMethod(又名静态方法)

Adr*_*cus 2 reflection static dart

我已经使用飞镖了很长一段时间了.如果我想为类的对象实现动态getter,setter和函数,我可以使用noSuchMethod方法.但是,如果我现在想要在类层上拥有这样一个动态getter方法,那该怎么办呢?例如,在Ruby中,如果想要实现动态类方法,可以method_missing在类对象上定义-method,例如:

class Test
    def self.method_missing
        //Do some matching, return result or error
    end
end
Run Code Online (Sandbox Code Playgroud)

我如何在Dart中实现这一目标?

Gün*_*uer 5

我不认为你可以在没有镜子/反射的Dart中做到这一点.

我也认为这不是很有用.
您不能在"动态"类型上调用静态方法,因此您无法模拟静态方法.

如果你需要这个,你应该把它变成一个普通的方法,而不是静态方法.

  • 您可以在`MyObject`之外创建一个`MyObjectRepository`,并在此存储库对象上使用`noSuchMethod`.它与静态方法几乎相同.您还可以将此存储库添加为MyObject的静态成员.因此`MyObject.REPO.find_one_by_username(...)`将接近activeRecord API. (2认同)