我有一个我在项目中使用的库。它有一个可以实例化为
的类 A object = new A(new B(value), C::new, D::new);
A,B,C,D类都不是公共的,尽管构造函数是。
所以,我想使用Reflection实现这一目标。但是,我无法弄清楚如何使用反射方法参考C::new
,D::new
。
对于我如何做到这一点表示赞赏。
答案 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))
}