Я ищу способ добавления полей в поток на лету, переписывая байтовый код и перезагружая класс, не будучи уверенным, что это вообще возможно. Любые указатели приветствуются. Я нашел некоторую информацию о модификации и загрузке класса, и я знаю, что JRebel может плавно перетаскивать ваш код, но не уверен, что здесь применяются одни и те же подходы/инструменты.Как я могу изменить класс java.lang на лету?
Мотивация здесь исследует теоретически лучшую альтернативу потоковым локальным объектам. Если этот метод работает, я должен иметь возможность заменить thread local аннотацией, и результат должен превзойти текущую реализацию JDK.
PS: Пожалуйста, сохраните мне "корень всех зол речи"
Разъяснение использования:
Представьте У меня есть класс с ThreadLocal:
class A {
ThreadLocal<Counter> counter;
...
counter.get().inc()
}
Я хотел бы замените это аннотацией:
class A {
@ThreadLocal
Counter counter;
...
counter.inc()
}
Но вместо приведенного выше кода получение гена рейтинг Я хотел бы мутировать Тему такими, что тема теперь будет иметь поле Acounter и фактический код будет:
class A {
// Nothing here, field is now in Thread
...
Thread.currentThread().Acounter.inc()
}
вы бы добавить, что вы в настоящее время или работали на ..следующие код, чтобы мы могли лучше помочь вам, пожалуйста? –
Прошу прощения, это на предварительном этапе исследования, на данный момент кода нет. Я отредактирую Q, чтобы уточнить намерение. –