LINUX.ORG.RU

История изменений

Исправление 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 импортировать по умолчанию.

Ну или как ты делаешь, делать, но тут придётся всю стандартную библиотеку оборачивать в обёртки.