powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ссылки
6 сообщений из 6, страница 1 из 1
Ссылки
    #33224148
_Игорь_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует ли в Java понятие ссылки? Конкретней, есть ли возможность создать, например, массив с ссылками на функции и вызывать их как элемент массива? Т.е. не зная названия функции, например, пятую в массиве.
...
Рейтинг: 0 / 0
Ссылки
    #33224181
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно завести массив объектов(полиморфных) и вызывать их метод(ы)
...
Рейтинг: 0 / 0
Ссылки
    #33224189
_Игорь_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это понятно. Но так не подходит. Нужно именно так, как я описал. Java такое не позволяет?
...
Рейтинг: 0 / 0
Ссылки
    #33224205
gaper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Позволено всё, но нет так как описано.
...
Рейтинг: 0 / 0
Ссылки
    #33224574
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Игорь_ wrote:
> Существует ли в Java понятие ссылки? Конкретней, есть ли возможность
> создать, например, массив с ссылками на функции и вызывать их как
> элемент массива? Т.е. не зная названия функции, например, пятую в массиве.

В Java нет понятия ссылки на функцию. И вообще понятия ссылки в C/C++
стиле нет.

А извратиться можно через Java Reflection примерно след. образом
(обработка исключений поскипана):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 import  java.lang.reflect.*;

 class  FakeFuncPointer {
   String className, funcName;
   Object target;
   Method function;
    public  FakeFuncPointer(String className,
		String funcName,  Class [] argTypes)
  {
	 this .className = className;
  	 this .funcName = funcName;
	target= Class .forName(className).newInstance();
	function=target.getClass().getMethod(funcName, argTypes);
   }

    public  Object eval(Object[] params){
	 return  function.invoke(target, params);
   }
}

А для особо подвинутых извращенцев - прямые манипуляции байт-кодом
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Ссылки
    #33224897
_Игорь_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Java нет понятия ссылки на функцию. И вообще понятия ссылки в C/C++ стиле нет.
Я так и предполагал. Жаль. Презабавнейшая штука. Все равно спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ссылки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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