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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> могут ли быть параметры метода - методом? 
:(
    Опции темы
maxxi
Дата 29.4.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте! у меня такой вопрос - 
есть некий класс,XYZ, в нем есть boolean методы, с разными входными параметрами. 

Нужно написать класс, например Test, который тестирует методы из XYZ. В нем должен быть метод к примеру, Status(метод_из_XYZ() ). 

Возможно ли такое в яве? 

После проведения теста этот метод должен выдавать также, с каким методом метод_из_XYZ() он был вызван. 

Подскажите, как это можно реализовать 
Спасибо за ответы
PM MAIL   Вверх
Nofate
Дата 29.4.2010, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может не проектировать велосипед, а взять JUnit? )


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
_Y_
Дата 30.4.2010, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



Я обычно делаю динамическую подставновку методов, прописывая каждый метод в своем классе. Ну а в качестве параметра передаю не метод, а объект. Понятное дело, что все тестируемые методы имеют одно имя, а идентифицируются по имени или класса или объекта. Классы же или имеют одного предка или имплементируют один интерфейс.

Не подойдет такой, ИМХО применимый почти к каждому ОО языку, подход?


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
MAXIMUS00
Дата 30.4.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



можно использовать reflection. класс Class.
PM MAIL   Вверх
ivanovpv
Дата 30.4.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Цитата(maxxi @  29.4.2010,  23:20 Найти цитируемый пост)
Нужно написать класс, например Test, который тестирует методы из XYZ. В нем должен быть метод к примеру, Status(метод_из_XYZ() ). 


Так напрямую нельзя, метод не может напрямую являться параметром метода. Параметром метода может быть класс или примитивный тип. В вашем случае есть способ решения такой:
1) Извлечь через Java рефлексию метод класса XYZ в виде специального объекта Method
Код

        XYZ xyz;
        //....
        Method methods[]=xyz.getClass().getMethods(); //получаем список методов класса XYZ

2) Создать метод Status() и внутри его вызвать нужный метод полученный ранее
Код

public boolean Status(java.lang.reflect.Method method)
{
    //...
    method.invoke(...); //вызываем метод со списком параметров
    //...
}





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

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

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


 




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


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

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