Как использовать ignoredynamic для выполнения метода с полиморфизмом?JAVA

Программисты JAVA общаются здесь
Anonymous
Как использовать ignoredynamic для выполнения метода с полиморфизмом?

Сообщение Anonymous »

В динамическом языке Java, где все переменные объявлены как java.lang.Object, мне нужно вызывать встроенные классы Java. Например, конструктор java.math.BigDecimal может принимать число, строку и т. д.

Код: Выделить всё

a = 10  // a is `java.lang.Object`
create java.math.BigDecimal(a)  // should call constructor that accept number
a = '1.234'  // a is `java.lang.Object`
create java.math.BigDecimal(a)  // should call constructor that accept String
Существует ли java.lang.invoke, который я могу использовать для создания соответствующего дескриптора метода? MethodHandle должен принимать java.lang.Object в качестве аргумента, но при вызове он должен вызывать соответствующий конструктор.

Вернуться в «JAVA»