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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интерпретатор в интерпретаторе, Аналог указателя 
V
    Опции темы
snam
Дата 21.10.2010, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Интерпретатор в интерпретаторе, самому смешно, звучит как анекдот, и все же...

В jar левый файл данных - логики (в оперативку), мидлет как исполняющая машина.
Нужен быстрый, заранее проинициализированный (на соответствие цифра = функция) механизм: 
На входе цифра, на выходе вызов  метода, согласно цифре, но без if и case.
На указателях это не проблема, но в java ими и не пахло.
Не настолько знаю j2me, чтобы найти обходной маневр, если он возможен, конечно.
PM MAIL   Вверх
heizer
Дата 22.10.2010, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а почему  if и switch нельзя ? 
Просто понять хочу. 
PM MAIL   Вверх
snam
Дата 22.10.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Машина бегает, туды, сюды, по "левому файлу" и считывает команды, попала на 149.
Нужен вызов функции Func149();
Начинаем искать:
   switch (...){
         case 1: Func1(); break;
         case 2: Func2(); break;
         case 3: Func3(); break;
            ...
         case 149: Func149(); break; 
         case 150: Func150(); break;
           ...
         case 580: Func580(); break;
   }
Плюс надо выполнить Func149(), а там может быть все что угодно, да и 149 появилась не из воздуха.
В лучшем случае имеем двойной цикл, для шахмат пойдет, а если динамика...

На указателях:

    Инициал:
       adres[1]=@Func1;
       ...
       adres[149]=@Func149;
       ...
       adres[580]=@Func580;
    ----------------
    Вызов:
     p=adres[LevFile[z]];    p;       //z - смещение      LevFile[z] равно 149


PM MAIL   Вверх
Skynin
Дата 22.10.2010, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Объявляем интерфейс 

interface FuncI 

В котором единственный метод

void func()

Плодим реализации

class Func149 implements FuncI

Массив будет:
FuncI[] adres;

инициализация

 adres[149]= new Func149();

Итог:
FuncI[]  p=adres[LevFile[z]];    p.func(); 
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
snam
Дата 23.10.2010, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое, опробовал на g.setColor(adres[1].func(),adres[2].func(),adres[3].func()), прекрасно робит.
Хотел заслуженный плюсик поставить, говорят - молод еще.

PM MAIL   Вверх
W0LF
Дата 25.10.2010, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



Цитата

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

я поставил


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




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


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

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