10 / 9 / 7
Регистрация: 03.03.2013
Сообщений: 71
1

Передача имени класса в качестве параметра функции

26.02.2015, 21:51. Показов 4808. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! Имеется 3 класса:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Class1 {
    public static String run(){
        return "Class1";
    }
}
 
class Class2 {
    public static String run(){
        return "Class2";
    }
}
 
class Class3 {
    public static String run(){
        return "Class3";
    }
}
И в четвертом классе в зависимости от каких-то условий я хочу выполнять метод run() одного из этих классов, допустим, у меня есть имя нужного класса в какой-то переменной, как мне с ее помощью вызвать метод этого класса?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2015, 21:51
Ответы с готовыми решениями:

Передача функции в качестве параметра
Есть функция которая генерирует строковые переменные и записывает их в файл. В файл они должны...

Передача имени класса в качестве параметра функции
Доброго времени суток! Помогите решить проблему господа программисты =) Имеется несколько...

[C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc()
Пишу программу для обхода бинаронго дерева поиска. Программа написана и кажется даже работает, но...

Передача класса в качестве параметра
Здраствуйте, вообщем есть код class Main: public ExampleApplication { public: void...

6
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
26.02.2015, 22:18 2
Добавьте:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
class Class4 {
  
    public static void method(String className) {
        if (className.contentEquals("Class1")) {
            Class1.run();
        } else if (className.contentEquals("Class2")) {
            Class2.run();
        } else {
            Class3.run();
        }
    }
    
}
0
10 / 9 / 7
Регистрация: 03.03.2013
Сообщений: 71
26.02.2015, 23:22  [ТС] 3
Хотелось бы без ветвления, нашел в интернете java reflection, никак не могу разобраться
0
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
26.02.2015, 23:37 4
maksimkalon, самое простое и правильное - использовать интерфейсы или абстрактные классы в вашем случае.
2
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
27.02.2015, 02:44 5
maksimkalon, передавать нужно не имя класса а интерфейс как сказали выше. reflection в этом случае использовать плохо
1
10 / 9 / 7
Регистрация: 03.03.2013
Сообщений: 71
27.02.2015, 09:40  [ТС] 6
А можно ли пример?

Добавлено через 10 минут
Сам разобрался:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
interface Classes {
    String run();
}
 
class Class1 implements Classes {
    public String run(){
        return "Class1";
    }
}
 
class Class2 implements Classes {
    public String run(){
        return "Class2";
    }
}
 
class Class3 implements Classes {
    public String run(){
        return "Class3";
    }
}
Функция:
Java
1
2
3
        public static String classRun(Classes cl){
        return cl.run();
    }
Вызов:
Java
1
2
3
4
5
6
7
                Class1 class1 = new Class1();
        Class2 class2 = new Class2();
        Class3 class3 = new Class3();
        
        System.out.println(classRun(class1));
        System.out.println(classRun(class2));
        System.out.println(classRun(class3));
Результат:
Код
Class1
Class2
Class3
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
27.02.2015, 09:44 7
попробуй создать не объекты Class1 Class2 Class3
а вот так
Java
1
2
3
Classes cl1 = new Class1();
Classes cl2 = new Class2();
Classes cl3 = new Class3();
так кошернее
1
27.02.2015, 09:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2015, 09:44
Помогаю со студенческими работами здесь

Передача класса в качестве параметра
Возможно ли передать класс в качестве параметра определённой функции что бы она на базе этого...

Передача класса в качестве параметра шаблона
Имеется два класса, один это однонаправленный итератор, другой это двунаправленный. Двунаправленный...

Классы, передача экземпляра класса в качестве параметра
Есть три класса: Фильм, Зал, Сессия. Сущность: Кинотеатр. У класса Фильм множество полей типа:...

Передача члена класса в качестве параметра метода
Добрый день. Интересует следующий вопрос: как передать член класса как параметр по значению в метод...

Передача функции в качестве параметра
Есть ф-я для отправки формы аяксом function ajaxFormRequest(form_id, url, dataT, some_func) { ...

Передача функции в качестве параметра
Может кто помочь объяснить следующую часть кода: double MyMethod(Func<double, double> f,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru