Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Janino - создание класса из строки???!!! 
V
    Опции темы
Killer_13
  Дата 27.2.2012, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Есть такая штучка Janino. Она умеет создавать классы из строки. Мне рубит ошибку. Материалов в инете "0"! 2 странички туториала и все! Не могу даже ни одной статьи найти. :(
Так вот, я хочу сделать обычный класс и вызвать метод, рубит ошибку 

Код

import java.io.IOException;
import java.io.StringReader;

import org.codehaus.commons.compiler.CompileException;
import org.codehaus.janino.SimpleCompiler;

public class JaninoCompileFromString {
    
    private static SimpleCompiler compiler = new SimpleCompiler();
    
    public static void main(String[] args) throws CompileException, IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {
        String source = "public class JaninoEvaluator implements Evaluator {\n"
                 +"\tpublic int evaluate(int i) {" + "\t\t"
                 +"\n" + "\t\treturn i-2;\n" + "\t}\n"
                 +"}\n";
        
        compiler.cook(new StringReader(source));
        
        Class clazz = compiler.getClassLoader().loadClass("JaninoEvaluator");
        
        Evaluator eval = (Evaluator)clazz.newInstance();
        
        System.out.println(source);
        System.out.println("\n\n\n evaluate(13): "+eval.evaluate(13));
    }
}



Код

Exception in thread "main" java.lang.VerifyError: (class: JaninoEvaluator, method: evaluate signature: (I)D) Expecting to find object/array on stack
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at JaninoCompileFromString.main(JaninoCompileFromString.java:26)



Спасибо.

Где можно почитать о этом?

 
В чем моя ошибка? :(


PM MAIL   Вверх
Killer_13
Дата 27.2.2012, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



smilesmilesmile Вот я торрррмммооооззззз, 

Вот где сидела моя ошибка!!
Я забыл выложить
Код
public interface Evaluator {

    public double evaluate(int i);
}


а нужно
Код
public interface Evaluator {

    public int evaluate(int i);
}


Все запустилось, и заработало.

Еще бы подсказали где читать на данную тему. был бы премного благодареннн!!

А то мне нужно погулбже разобраться в данной теме...

PM MAIL   Вверх
Metalex
Дата 6.3.2012, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Никто не отменял JavaDocs
Ссыль на StackOverflow
И базовые знания
больше, на удивление, не удалось найти.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Killer_13
Дата 7.3.2012, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Цитата(Metalex @ 6.3.2012,  13:18)
Никто не отменял JavaDocs
Ссыль на StackOverflow
И базовые знания
больше, на удивление, не удалось найти.

Уважаемый, это все что вы предложили, у меня было, конечно я весь сайт облазил и так д...
Но все же, конкретных примеров у меня небыло, а со многими технологиями я не знаком.. :(
Как ни странно я тоже ничего не смог найти. :(
Не важно, вопрос уже решен - спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0673 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.