Можно ли изменить вывод MyClass.class.getName()
? Пример:Можно ли изменить вывод Class.getName()?
public class MyClass {
}
public static main(String args[]) {
System.out.println(MyClass.class.getName());
}
- Выход не должен быть 'MyClass' а 'независимо. Возможно ли это ?
- Кроме того: если мы сможем изменить вывод на «все», можем ли мы полностью контролировать вызов Myclass.class.getName(), , аналогичный перезаписи метода?
Почему я спрашиваю: У меня есть программа (которую я не контролирую), который динамически загружает MyClass (MyClassLoader.loadClass('MyClass')
) и вызывает MyClass.class.getName()
.
редактировать: я лучше перефразировать некоторые факты для ясности:
-MyClass загружается динамически с помощью загрузчика классов с Class new_class = loadClass('MyClass')
. Я не могу изменить этот код, это не вопрос.
-Следующий, что происходит: System.out.println(new_class.class.getName())
---> Проблема: Этот вызов идет к java.lang.Class<T>.getName()
и, конечно, возвращение «MyClass». Есть ли способ изменить этот выход?
Измените имя класса с 'MyClass' на' whatever'. – fracz
Попробуйте MyClass.getClass(). GetSimpleName(). Вы получите String, Integer или что-то еще. – Suspended
Для удобства имя класса жестко запрограммировано в другой программе. Программа загружает «MyClass». См. Мое редактирование "(которое я не контролирую)" –