1. Java / Говнокод #8076

    +79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    public class Executer {
        private Class cClass;
        private Method method;
        private static final String methodName = "execute";
    ............................................................................................
        private void getExecutableMethod() {
            Method[] methods = cClass.getDeclaredMethods();
            for (Method tempM : methods) {
                if (tempM.getName().equals(methodName)) {
                   method = tempM;
                   break;
               }
            }
        }
    }

    креативненько

    Запостил: dakota, 03 Октября 2011

    Комментарии (10) RSS

    • чисто экзекуция
      Ответить
    • Кто-то изучил рефлексию, а вот Executors framework не успел.
      Ответить
      • да и рефлексию, то ли не успел, то ли 3 строчки прочитал
        Ответить
    • >Executer
      на французский манер.

      > for (Method tempM : methods) {
      > if (tempM.getName().equals(methodName)) {
      а есть библиотечные методы поиска метода с нужной сигнатурой?
      inb4 ехал метод через метод
      Ответить
      • > на французский манер.
        Executeur
        Ответить
      • > а есть библиотечные методы поиска метода с нужной сигнатурой?
        http://download.oracle.com/javase/1,5,0/docs/api/java/lang/Class.html#getDeclaredMethod(java.lang.String, java.lang.Class...)
        Ответить
        • спасибо кеп,
          но вот только вот типы аргументов нужно указывать точно.
          нельзя вместо TYPE.int указать Integer или вместо String.class Object.class.
          потому приходится искать перебором.
          Ответить
    • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
      Ответить

    Добавить комментарий