1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Очистить Set с помощью рефлекций

Тема в разделе "Оффтопик", создана пользователем ql_Nik_lp, 30 апр 2015.

  1. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Доброго времени суток, возникла необходимость очистить private Set с помощью рефлекций.
    Пытаюсь делать так, но увы получаю всяческие ексепшны.
    Код:
                Field field = clazz.getDeclaredField("c");
                field.setAccessible(true);
                Method clear = Set.class.getDeclaredMethod("clear");
                clear.invoke(field);
    Заранее благодарю.


    Решение:
    Код:
    Set blockSet = (Set) field.get(null);
    Спасибо @DPOH-VAR
     
    Последнее редактирование: 30 апр 2015
  2. andrew_houp

    andrew_houp Активный участник Пользователь

    Баллы:
    63
    Имя в Minecraft:
    cube
    Method clear = Set.class.getDeclaredMethod("clear");
    clear.setAccessible(true);
    clear.invoke(field);
     
  3. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Собственно ничего не изменилось
     
  4. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    В invoke() указывается объект, метод которого Вы вызываете, если конечно это не статический метод. И для начала Вам нужно достать этот объект.
     

Поделиться этой страницей