powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
7 сообщений из 7, страница 1 из 1
Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
    #37903582
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Я через рефлексию подключаю к своему приложению библиотеку.
Вызываю конструктор класса этой библиотеки в который нужно передать аргумент. И если бы у этого конструктора типы аргументов были стандартные (int, String и т.п. ) то все бы получалось, но у меня тип аргумента в конструкторе - это свой самописный класс например MyClass. Этот класс я изгочально загнал в третию библиотеку и подключаю ее к проекту приложения и к модулю, т.е. простыми словами этот класс как посредник, средство для упаковки моих данных и отправки библиотеке.
При запуске в консоле исключение Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException:
В C# т.к. все классы унаследованны от object, то там можно любой обьект привести к object, передать куда угодно и там его прикастить обратно, а в Java я так полагаю нет. Возможно необходимо имплементировать какой нить интерфейс или еще что нибудь.
Не знаю!
...
Рейтинг: 0 / 0
Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
    #37903594
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно грузить одним класслоадером
...
Рейтинг: 0 / 0
Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
    #37903596
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stacktrace и код в студию.
...
Рейтинг: 0 / 0
Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
    #37903631
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: TestPkg.AppsDefinition cannot be cast to Core.KAProvider
    at Core.MainForm.appsTree_MouseClicked(MainForm.java:305)
    at Core.MainForm$1.mouseClicked(MainForm.java:53)
    at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)



Главное приложение:
Код: java
1.
2.
3.
4.
Class c = this.pluginManager.Read(apps.get(sel.toString())); //Тут в методе Read работает Classloader. Срабатывает
Constructor constructor = c.getConstructor(); //Срабатывает
Object obj = constructor.newInstance(); //Срабатывает
KAProvider man = (KAProvider)obj; // Кастим к интерфейсу. Не срабатывает



А вот подгружаемый модуль:
Все методы в классе имплементированны с интерфейса KAProvider, конструктор т.понимаю не обязательно описывать.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
public class AppsDefinition implements KAProvider{
 
    private TestlFrame tf;
    private LinkManager linkManager;
 
    public void Start(Object src, LinkManager lm)
    {
        this.linkManager = lm;
        this.tf = new TestlFrame(this);
        ((JDesktopPane) src).add(this.tf);
        this.tf.setVisible(true);
 
    }
 
    public Connection GetConnection() {
        return this.linkManager.GetConnection();
    }
 
    public int GetOEBSUserID() {
        return this.linkManager.GetOEBSUserID();
    }
 
    public int GetUserID() {
        return this.linkManager.GetUserID();
    }
 
    public boolean GetAuthState() {
        return this.linkManager.GetAuthState();
    }
}


Ну и сам интерфейс, который лежит в отдельной библиотеке и подключет и к приложению и к модулю:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
import java.sql.Connection;
 
public interface KAProvider {
 
    public void Start(Object src, LinkManager lm);
 
    public Connection GetConnection();
 
    public int GetOEBSUserID();
 
    public int GetUserID();
 
    public boolean GetAuthState();
}
...
Рейтинг: 0 / 0
Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
    #37903638
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не всё так просто в разработке плагинов в Java:
12933486
...
Рейтинг: 0 / 0
Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
    #37903718
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

что скажете по поводу сериализации класса и его данных и последующей передаче для десериализации в пункте назначения?
...
Рейтинг: 0 / 0
Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
    #37903752
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа,
Вот хочу попробывать это
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Рефлексия! Ошибка вызова методов с аргументами кастомного типа!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]