Исходник rHooks v1

ak1

Новичок
Регистрация
25.10.2025
Сообщения
2
rHooks - утилита для создания хуков классов Java, обеспечивающая доступ к полям, вызов методов и создание экземпляров через рефлексию.

Основные возможности:
Доступ к полям - получение и изменение любых полей в 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"))

 
Последнее редактирование:
Назад
Верх Низ