| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Рефлексия, запуск метода из загруженного класса |
| Автор: maxlab 14.5.2008, 19:45 | ||
Здравствуйте!
все работает, но при компиляции вываливаются варнинги след.содержания Compiling 1 source file to /media/disk/Loader/build/classes /media/disk/Loader/src/loader/Loader.java:154: warning: non-varargs call of varargs method with inexact argument type for last parameter; cast to java.lang.Class for a varargs call cast to java.lang.Class[] for a non-varargs call and to suppress this warning Method m = Application.getMethod("doIt", null); /media/disk/Loader/src/loader/Loader.java:156: warning: non-varargs call of varargs method with inexact argument type for last parameter; cast to java.lang.Object for a varargs call cast to java.lang.Object[] for a non-varargs call and to suppress this warning m.invoke(oApp, null); Note: /media/disk/Loader/src/loader/Loader.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 2 warnings что я делаю не так? И как победить? |
| Автор: Kangaroo 14.5.2008, 19:51 |
Передавай последними параметрами не null, а пустые массивы. |
| Автор: maxlab 14.5.2008, 19:55 | ||
Спасибо, сейчас попробуем |
| Автор: LSD 14.5.2008, 22:44 | ||||
1. Один вариант решения уже подсказал компилятор:
2. Если у тебя метод не принимает аргументов, то ничего передавать в varargs метод не нужно:
а вот если ты хочешь один параметр который равен null, то тогда тебе обязательно нужно привести его к java.lang.Object иначе тебя компилятор неправильно поймет. |
| Автор: maxlab 15.5.2008, 09:46 |
| Спасибо всем. Через пустые массивы сработало... |