como se dijo, java no es compatible con esto.
tiene algo llamado una clase proxy que puede interceptar llamadas a métodos conocidos (en lugar de métodos no definidos como en php's __call()). un proxy puede ser creado dinámicamente como una envoltura alrededor de cualquier interfaz:
http://tutorials.jenkov.com/java-reflection/dynamic-proxies.html#proxy
http://java.sun.com/j2se/1.4.2/docs/guide/reflection/proxy.html#examples
Foo foo = (Foo) DebugProxy.newInstance(new FooImpl());
foo.bar(null);
foo parece un Foo, pero todas las llamadas son interceptados por el método invoke() de FooImpl.
para crear una verdadera clase de novo en tiempo de ejecución con métodos dinámicos en su interfaz, básicamente puede compilar una definición de clase y usar el cargador de clases de java para importarla en tiempo de ejecución. una herramienta como apache's JCI o Arch4J puede manejar esto por usted. aún así, la clase solo tendrá aquellos métodos que especifique.
¿Qué hace __call? – Dan
@Dan, consulte http://www.garfieldtech.com/blog/php-magic-call – Kevin
Enlazando https: // stackoverflow.com/q/10226064/632951 – Pacerier