История изменений
Исправление
Legioner,
(текущая версия)
:
Просто думал может есть какой метод.
Есть вот такой: java.lang.Class#getPrimitiveClass
. Но он не публичный, лучше табличкой.
Моя имха — если делать по уму — тебе надо через getDeclaredMethods найти метод с подходящим именем. Если таких методов несколько — найти метод, у которого число параметров совпадает с переданным (не забыть про varargs). До этого момента всё делается при компиляции (если у тебя есть такая фаза). Если же у тебя до сих пор осталось несколько методов, то тут уже надо идти по переданным параметрам, сравнивать их типы с типами методов и выбирать наиболее подходящий. В этом случае можно будет писать что-нибудь вроде (Math.sin x)
и для такого тебе даже обёртки не надо будет делать, достаточно все классы из java.lang импортировать по умолчанию.
Ну или как ты делаешь, делать, но тут придётся всю стандартную библиотеку оборачивать в обёртки. Обычно стараются придумать способы максимально удобно её использовать без обёрток.
Исправление
Legioner,
:
Просто думал может есть какой метод.
Есть вот такой: java.lang.Class#getPrimitiveClass
. Наверное можно по регэкспу отличить имя примитивный тип от имени класса и потом решить, какой метод вызывать.
Моя имха — если делать по уму — тебе надо через getDeclaredMethods найти метод с подходящим именем. Если таких методов несколько — найти метод, у которого число параметров совпадает с переданным (не забыть про varargs). До этого момента всё делается при компиляции (если у тебя есть такая фаза). Если же у тебя до сих пор осталось несколько методов, то тут уже надо идти по переданным параметрам, сравнивать их типы с типами методов и выбирать наиболее подходящий. В этом случае можно будет писать что-нибудь вроде (Math.sin x)
и для такого тебе даже обёртки не надо будет делать, достаточно все классы из java.lang импортировать по умолчанию.
Ну или как ты делаешь, делать, но тут придётся всю стандартную библиотеку оборачивать в обёртки. Обычно стараются придумать способы максимально удобно её использовать без обёрток.
Исходная версия
Legioner,
:
Просто думал может есть какой метод.
Есть вот такой: java.lang.Class#getPrimitiveClass
. Наверное можно по регэкспу отличить имя примитивный тип от имени класса и потом решить, какой метод вызывать.
Моя имха — если делать по уму — тебе надо через getDeclaredMethods найти метод с подходящим именем. Если таких методов несколько — найти метод, у которого число параметров совпадает с переданным (не забыть про varargs). До этого момента всё делается при компиляции (если у тебя есть такая фаза). Если же у тебя до сих пор осталось несколько методов, то тут уже надо идти по переданным параметрам, сравнивать их типы с типами методов и выбирать наиболее подходящий. В этом случае можно будет писать что-нибудь вроде (Math.sin x)
и для такого тебе даже обёртки не надо будет делать, достаточно все классы из java.lang импортировать по умолчанию.
Ну или как ты делаешь, делать, но тут придётся всю стандартную библиотеку оборачивать в обёртки.