Java或PHP中缺少的方法

use*_*312 7 php ruby java

我一直在寻找不同的语言来开始.我在Ruby中发现method_missing非常有趣,但是在Java和PHP中找不到相同的东西.在Java或PHP中有类似method_missing的东西吗?

cwa*_*ole 8

PHP有__call($name, array $args).这是一个处理您调用未为实例定义的方法的情况.

在PHP> = 5.3中,还有__callStatic($name, array $args)哪些函数在类级别(duh)上大致相同.

class MyClass
{
    public function __call($name, array $args)
    {
        echo "You tried to call $name(".implode(',',$args)."). Silly user.";
    }
}

$k = new MyClass();
$k->doSomething(1,2,3); // You tried to call doSomething(1,2,3). Silly user.
Run Code Online (Sandbox Code Playgroud)

Java中的等价物有点麻烦,它涉及到一个叫做Proxy类的东西.可以在这里找到一个教程- 这里的示例有点概括.