在所有变量都声明为的 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
?MethodHandle
应该接受一个作为它的java.lang.Object
参数,但是当被调用时,它应该调用正确的构造函数。