Ранний NoSuchMethodError, желаемый вызовом loader.loadClass () - PullRequest
0 голосов
/ 28 февраля 2012

Я хочу проверить, работает ли новая версия моего класса CallingClass с моим jar, даже если класс был скомпилирован после него.

В моем случае CallingClass.m1 () вызывает методCalledClass.method (), которого нет в банке.Выполнение кода приводит к NoSuchMethodError.

A необходимо решение для проверки класса CallingClass снова в jar, но за пределами выполнения.

Я попытался выполнить

public class ResolvingClassLoader extends ClassLoader
{
    public Class<?> loadClass(String name) throws ClassNotFoundException
    {
        return loadClass(name, true);
    }

    public static void main(String[] args) throws Exception
    {
        final ResolvingClassLoader loader = new ResolvingClassLoader();
        final String className = "CallingClass";
        loader.loadClass(className);
    }

}

и надеялся, что вызов loadClass сгенерирует NoSuchMethodError, поскольку он разрешает (т.е. связывает) класс.Это не тот случай.Знаете ли вы, как создать «ранний» NoSuchMethodError?

1 Ответ

0 голосов
/ 28 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...