Методы волшебного вызова в Java

Есть ли способ использования магических методов в Java, как в PHP, с __ call ?

Например:

 class foo {
     @Setter @Getter
     int id;

     @Getter
     Map  myMap;

     protected class ClassInFoo {
          @Setter @Getter
          String name;
     }

     @Setter
     String defaultKey;
 }

Я использование аннотаций Project Lombok для методов получения и установки для упрощения кода.

Давайте предположим, что моя карта содержит несколько элементов, отображаемых String, а defaultKey определяет элемент по умолчанию.

Я бы хотел иметь возможность вызывать foo.getName () , который возвращал бы имя по умолчанию как foo.myMap.get (defaultKey) .getName () .

Причина, по которой я не могу просто написать все геттеры вручную, заключается в том, что класс Foo фактически наследуется с помощью дженериков, а внутренний класс может быть другим.

Мне нужно что-то вроде:

   function Object __call(method) {
           if (exist_method(this.method)
                return this.method();
           else 
                return this.myMap.get(defaultKey).method();
   }

Возможно ли это каким-то образом в Java?

РЕДАКТИРОВАТЬ:

Я привел более точный пример того, чего я пытаюсь достичь здесь: https: // gist.github.com/1864457

Единственная причина делать это - сокращать методы во внутреннем классе.

6
задан Sled 14 March 2014 в 18:44
поделиться