Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923

Не могу вывести из proxy-object'a имя

11.02.2020, 01:25. Показов 1366. Ответов 1

Студворк — интернет-сервис помощи студентам
Main
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.company;
import java.lang.reflect.Proxy;
public class Main
{
    public static void main(String[] args)
    {
        //Создаю оригинальный объект
        Supermarket silpo = new Supermarket("Сильпо", "Украина", "Киев");
 
        //Тут получаю загрузчик класса у оригинального объекта
        ClassLoader silpoClassLoader = silpo.getClass().getClassLoader();
 
        //Получаю все интерфейсы, которые реализует оригинальный объект
        Class[] interfaces = silpo.getClass().getInterfaces();
 
        //прокси объекта silpo
        Store proxySilpo = (Store) Proxy.newProxyInstance(silpoClassLoader, interfaces, new StoreInvocationHandler(silpo));
 
        //Вызываю у прокси объекта один из методов оригинального объекта
        proxySilpo.introduce(silpo.getName());
    }
}


Interface Store
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
package com.company;
public interface Store {
    public void introduce(String name);
    public void sayFrom(String country , String city);
}


StoreInvocationHandler -- прокси класс
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.company;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
 
public class StoreInvocationHandler implements InvocationHandler {
    private Store store;
    public StoreInvocationHandler(Store store) {
        this.store = store;
    }
 
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("Привет!");
        return null;
    }
    public Store getStore() {
        return store;
    }
}


Class Supermarket -- класс принимающий интерфейс Store
Кликните здесь для просмотра всего текста
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
package com.company;
public class Supermarket implements Store //Главнный класс -- супермаркет, он принимает интерфейс Store, то есть интерфейс магазина
{
    /* Каждый супермаркет имеет название(например Silpo, ATB ...)*/
    /* и место регестрации, то есть страну и город(без подробностей)*/
    private String name;
    private String country;
    private String city;
 
    public Supermarket(String name, String country,String city) {
        this.name = name;
        this.country = country;
        this.city = city;
    }
 
    @Override
    public void introduce(String name) {
        System.out.println("Название магазина " + this.name);
    }
    @Override
    public void sayFrom(String city, String country) {
 
        System.out.println("Страна и город магазина " + this.country+ ", " +  this.city);
    }
    public String getName() {
        return name;
    }
}

По идее должно было найти имя "Сильпо" и вывести его, но я видать в глаза долблюсь, или не понял чего)
Project.rar
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.02.2020, 01:25
Ответы с готовыми решениями:

Как я могу вывести имя класса в котором я нахожусь (на данный момент выполняется программа)?
как я могу вывести имя класса в котором я нахожусь (на данный момент выполняется программа)? а еще лучше и название метода

Для входа на сервер xxx.xx.xx.xx по адресу proxy нужны имя пользователя и пароль
Такая проблема. Приобрёл себе частный прокси-адрес с логином и паролем, включил его только на опере. Потом захожу через мозиллу, пытаюсь...

Зная ip адрес компьютера и его имя вывести имя пользователя
Зная ip адрес компьютера и его имя вывести имя пользователя в текстовое поле. я смог осилить только вывод имя компьютера: ...

1
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
11.02.2020, 01:51
Лучший ответ Сообщение было отмечено limeniye как решение

Решение

Навскидку,
Java
1
2
3
4
5
6
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("Привет!");
        method.invoke(store, args);
        return null;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2020, 01:51
Помогаю со студенческими работами здесь

Ввести фамилию, имя, отчество. Вывести свое имя в столбик
Ввести фамилию, имя, отчество. Вывести свое имя в столбик.

Строки: ввести фамилию, имя и отчество, вывести имя в столбик
Ввести фамилию, имя и отчество как одно данное строкового типа. Вывести имя в столбик.

Вывести фамилию, имя, отчество без пробелов. Сколько букв имеет имя.
как росписать в си-шарпе?

как вывести имя программы? именно имя, то что видно в провонике example.exe
собственно вопрос ^. это возможно? Добавлено через 18 минут догадался, кому надо ^^ #include <iostream.h> using...

Запросить у пользователя имя, фамилию и возраст. После чего вывести: “Здравствуйте [Имя] [Фамилия]”.
Здравствуйте и снова я обращаюсь за помощью задали задание: Написать код на JavaScript который будет: ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru