Форум программистов, компьютерный форум CyberForum.ru

Как обратиться к объекту по имени со строки? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Android-приложение, диплом http://www.cyberforum.ru/android-dev/thread1735190.html
Как организовать структуру приложения которое предоставляет доступ как для одиночного пользования так и для группы людей, при этом у группы людей должен быть администратор, которые просматривает результат? Оплата должна осуществляться как одиночным пользователем, так и администратором группы. Например, руководитель отдела хочет купить приложение для офисного пользования сотрдников, как можно...
Android Отправка логина, пароля на сервер с эмулятора Доброго дня. Отправляю на сервер логин и пароль, чтобы проверить совпадение пары в БД, но почему-то не отправляет и пишет ошибку E/JSON*Parser: Error parsing data org.json.JSONException: Value ���� of type java.lang.String cannot be converted to JSONObject Есть подозрение, что PHP скрипт кривой, может ли он относится к данной ошибке? @SuppressWarnings("deprecation") public class... http://www.cyberforum.ru/android-dev/thread1734995.html
Отображение картинки в ImageView полученной из ссылки Android
Всем привет! Длеаю приложение, которое получет JSON с сервера. Вид его следующий: Где в url хранится абсолютный путь к картинке. Этот JSON я успешно получаю: MainActivity.java: private class OrgMeTask extends AsyncTask<Void, Void, OrgDTO> {
Московское время и Calendar Android
Calendar MoscowTime = new GregorianCalendar(TimeZone.getTimeZone("Europe/Moscow")); // myAlarmDate.setTimeInMillis(System.currentTimeMillis()); MoscowTime.setTimeInMillis(localTime.getTimeInMillis()); // myAlarmDate.set(2016, 4, 14, 22, 55, 0); MoscowTime.set(2016, 4, 14, 22, 58, 0); int year = MoscowTime.get(Calendar.YEAR); int month =...
Android Угадайки http://www.cyberforum.ru/android-dev/thread1734891.html
Я правильно понимаю, что всякие "угадайки"(игры по типу миллионера) делаются при помощи SQLite? И нет где-нибудь примера подобной игры?
Android проверка антивируса как написать программу проверки антивируса на андроид через андроид студио? подробнее

Показать сообщение отдельно
some_name
Вежливость-главное оружие
 Аватар для some_name
220 / 220 / 55
Регистрация: 19.02.2013
Сообщений: 1,430
15.05.2016, 17:11     Как обратиться к объекту по имени со строки?
elos, либо хранить объекты в виде карты (номер -> экземпляр объекта) либо reflection
как я понял, именование объектов подчиняется какому-то правилу, в данном случае com.example.Object1, com.example.Object2,...,com.example.ObjectN.

Добавлено через 15 минут
elos, можно как-то так:

Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package com.example;
 
import java.util.Random;
 
public class Program {
    public static void main(String[] args) {
        new Program().start();
    }
 
    public final String NAME_FORMAT = "com.example.Task%s";
 
    public void start() {
        for (int i = 0; i < 20; ++i) {
            int taskNumber = getRandomTaskNumber();
            TaskResult<?> taskResult = runTaskByNymber(taskNumber);
            if (taskResult != null) {
                System.out.printf("task %d = %s\n", taskNumber, taskResult.getResult());
            } else {
                System.err.printf("task %d not executed'\n", taskNumber);
            }
        }
    }
 
    @SuppressWarnings({ "unchecked", "rawtypes" })
    private TaskResult<?> runTaskByNymber(int taskNumber) {
        try {
            Class<Task> task = (Class<Task>) Class.forName(String.format(NAME_FORMAT, taskNumber));
            Task<TaskResult<?>> runnableTask = task.newInstance();
            return runnableTask.execute();
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }
 
    public final Random RANDOMIZER = new Random();
 
    public int getRandomTaskNumber() {
        return RANDOMIZER.nextInt(getTotalNumberOfTask()) + 1;
    }
 
    public int getTotalNumberOfTask() {
        return 3;
    }
}
 
interface TaskResult<T> {
    T getResult();
}
 
interface Task<T> {
    T execute();
}
 
class Task1 implements Task<TaskResult<String>> {
 
    @Override
    public TaskResult<String> execute() {
        System.out.println("task1 is running...");
 
        return new TaskResult<String>() {
 
            @Override
            public String getResult() {
                // TODO Auto-generated method stub
                return "data";
            }
        };
    }
 
}
 
class Task2 implements Task<TaskResult<Integer>> {
 
    @Override
    public TaskResult<Integer> execute() {
        System.out.println("task2 is running...");
 
        return new TaskResult<Integer>() {
 
            @Override
            public Integer getResult() {
                return 2;
            }
        };
    }
 
}
 
class Task3 implements Task<TaskResult<Object>> {
 
    @Override
    public TaskResult<Object> execute() {
        System.out.println("task3 is running...");
 
        return new TaskResult<Object>() {
 
            @Override
            public Object getResult() {
                return "object";
            }
        };
    }
 
}
 
Текущее время: 17:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru