Здравствуйте, pla3moid, Вы писали:
P>// Как мне получить доступ к методам класса, загружаемого с помощью ClassLoader. P>// Делаю:
P>Object myCob = myLoader.loadClass("MyClass").newInstance();
P>// Не получаю доступ к методам MyClass. P>// Делаю:
P>MyClass myCob = (MyClass)myLoader.loadClass("MyClass").newInstance();
P>// Получаю classCastException(точно не помню)
не иметь MyClass в несколькх класслоадерах (myLoader, и в том, которым загружен вот этот вот твой код). Да и вообще как-то глупо имея MyClass в текущем класслоадере пытаться грузить его другим. в чем фишка?
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, pla3moid, Вы писали:
P>>// Как мне получить доступ к методам класса, загружаемого с помощью ClassLoader. P>>// Делаю:
P>>Object myCob = myLoader.loadClass("MyClass").newInstance();
P>>// Не получаю доступ к методам MyClass. P>>// Делаю:
P>>MyClass myCob = (MyClass)myLoader.loadClass("MyClass").newInstance();
P>>// Получаю classCastException(точно не помню)
L>не иметь MyClass в несколькх класслоадерах (myLoader, и в том, которым загружен вот этот вот твой код). Да и вообще как-то глупо имея MyClass в текущем класслоадере пытаться грузить его другим. в чем фишка?
P>> Да нет, лоадер у меня один, это просто я так записал код на форум.myLoader(1шт) нужно получить экземпляр MyClass,
а не Object.
Здравствуйте, pla3moid, Вы писали:
P> Да нет, лоадер у меня один, это просто я так записал код на форум.myLoader(1шт) нужно получить экземпляр MyClass, P>а не Object.
Ну ты уж потрудись записать то, чего собственно хочешь
Здравствуйте, pla3moid, Вы писали:
P>Начинаю писать: P>Короче, как загрузить класс из .jar и получить доступ к его методам.(с помощью ClassLoader или без ней мен все равно).
Здравствуйте, pla3moid, Вы писали:
P>Начинаю писать: P>Короче, как загрузить класс из .jar и получить доступ к его методам.(с помощью ClassLoader или без ней мен все равно).
Честно говоря, я не понимаю как это все относится к приведению типов.
Если ты хочешь загрузить класс, то нужно чтобы был создан связанный с этим классом экземпляр класса Class. Используемый по умолчанию загрузчик классов сделает это сам, когда ты создашь объект нужного класса или обратишься к его статическому полю или методу.
Здравствуйте, pla3moid, Вы писали:
P>Начинаю писать: P>Короче, как загрузить класс из .jar и получить доступ к его методам.(с помощью ClassLoader или без ней мен все равно).
для загрузки твоего MyClass не надо никаких лишних телодвижений. Другое дело было бы, если бы MyClass имплементил некоторый интерфейс, а вот в рантайме нужно было бы подгрузить конкретную реализацию. Типа
Тогда нужно смотреть за правильной иерархией класслоадеров. myLoader должен быть потомком текущего класс лоадера, т.е. для некоего jara-а
final URLClassLoader myLoader = new URLClassLoader(new URL[]{urlToJar});
//и потом уже
MyInterface myCob = (MyInterface)myLoader.loadClass("MyClass").newInstance();