ak1
Новичок
- Регистрация
- 25.10.2025
- Сообщения
- 2
rHooks - утилита для создания хуков классов Java, обеспечивающая доступ к полям, вызов методов и создание экземпляров через рефлексию.
Основные возможности:
• Доступ к полям - получение и изменение любых полей в runtime
• Вызов методов - выполнение private/public/static/protected методов
• Создание экземпляров - инстанцирование объектов через конструкторы
• Работа с модификаторами - удаление final модификаторов
Основные методы:ㅤ
Получение значений полей:
Установка значений полей:
Копирование и модификаторы:
Вызов методов:
Создание экземпляров:
Утилиты:
Конструкторы:
Примеры использования:
Особенности:ㅤ
• Работает с любой версией Java
• Поддерживает работу с наследованиемㅤ
Дополнительно:ㅤ
• Распространяется под лицензией MIT, подробнее можно узнать, открыв файл LICENSE внутри самой библиотеки
• Версия: 1.0
• Исходный код: Прилагается
Подключение в проект:
• Создать в проекте директорию для библиотек (например: "libs")
• Указать в build.gradle:
Основные возможности:
• Доступ к полям - получение и изменение любых полей в runtime
• Вызов методов - выполнение private/public/static/protected методов
• Создание экземпляров - инстанцирование объектов через конструкторы
• Работа с модификаторами - удаление final модификаторов
Основные методы:ㅤ
Получение значений полей:
Java:
// Получение значения поля из текущего экземпляра
T getValue()
// Получение значения поля из указанного экземпляра
T getValue(Object instance)
// Статический метод
static Object getFieldValue(Object instance, String fieldName)
Установка значений полей:
Java:
// Установка значения поля в текущий экземпляр
void setValue(T value)
// Установка значения поля в указанный экземпляр
void setValue(Object instance, T value)
// Статический метод
static void setFieldValue(Object instance, String fieldName, Object value)
Копирование и модификаторы:
Java:
// Копирование значения поля из одного объекта в другой
void copyFrom(Object from)
// Удаление final модификатор с поля
rHooks<T> removeModifier()
Вызов методов:
Java:
// Вызов метода экземпляра с указанием типов параметров
static Object invokeMethod(Object instance, String methodName, Class<?>[] paramTypes, Object... params)
// Вызов статического метода
static Object invokeStaticMethod(Class<?> clazz, String methodName, Class<?>[] paramTypes, Object... params)
Создание экземпляров:
Java:
// Создание нового экземпляра класса через конструктор
static <T> T createInstance(Class<T> clazz, Object... params)
Утилиты:
Java:
// Проверить наличие метода в классе
static boolean hasMethod(Class<?> clazz, String methodName, Class<?>... paramTypes)
// Получить имена всех полей класса
static String[] getFieldNames(Class<?> clazz)
// Получить имена всех методов класса
static String[] getMethodNames(Class<?> clazz)
Конструкторы:
Java:
// Создание хука по индексу поля
rHooks(Object instance, Class<?> from, int fieldIndex)
// Создание хука по типу поля
rHooks(Object instance, Class<?> from, Class<?> fieldType)
// Создание хука по имени поля
rHooks(Object instance, Class<?> from, String fieldName)
Примеры использования:
Java:
// Создание и работа с полями
Person person = new Person("John", 25);
rHooks<String> nameHook = new rHooks<>(person, Person.class, "name");
// Получение значения
String name = nameHook.getValue(); // "John"
// Изменение значения
nameHook.setValue("Getman");
// Работа с final полями
nameHook.removeModifier().setValue("NewValue");
// Статические методы
rHooks.setFieldValue(person, "age", 30);
Object age = rHooks.getFieldValue(person, "age");
// Вызов методов
rHooks.invokeMethod(person, "setName", new Class[]{String.class}, "Getman");
// Создание экземпляра
Person newPerson = rHooks.createInstance(Person.class, "Bob", 35);
Особенности:ㅤ
• Работает с любой версией Java
• Поддерживает работу с наследованиемㅤ
Дополнительно:ㅤ
• Распространяется под лицензией MIT, подробнее можно узнать, открыв файл LICENSE внутри самой библиотеки
• Версия: 1.0
• Исходный код: Прилагается
Подключение в проект:
• Создать в проекте директорию для библиотек (например: "libs")
• Указать в build.gradle:
Java:
implementation(fileTree("libs"))
Гости не видят ссылку
Войти или зарегистрироваться
Последнее редактирование: