如何使用Java中的反射获取构造方法引用

时间:2017-06-20 17:04:15

标签: java lambda constructor java-8 method-reference

我有一个我在项目中使用的库。它有一个可以实例化为

的类

A object = new A(new B(value), C::new, D::new);

A,B,C,D类都不是公共的,尽管构造函数是。

所以,我想使用Reflection实现这一目标。但是,我无法弄清楚如何使用反射方法参考C::newD::new

对于我如何做到这一点表示赞赏。

1 个答案:

答案 0 :(得分:1)

使用构造函数引用这一事实并不重要。您只需要知道转换它的函数接口类型,然后创建它的实例。

对于默认构造函数,这可能是package main import ( "fmt" "math/rand" ) func main() { fmt.Println(randInt(1, 1000)) } func randInt(min int, max int) int { return min + rand.Intn(max-min) } 。你会得到这样的东西:

func main() {
    fmt.Print(rand.Intn(100))
}