3 个回答

你说 cons[0] 是一个构造方法,这样说是不正确的。Class 类的 getConstructors() 返回的一个数组,数组中的每个元素(比如你代码中的 cons[0])是用来表示构造方法的 的实例 —— cons[0] 是一个类(java.lang.reflect.Constructor)的实例,不是一个方法。类似的,你还可以通过 ClassgetMethod 获得一个表示方法的类,getField 方法获得一个表示字段的类。所以,cons[0].newInstance(...) 是在 cons[0] 上调用它的 newInstance 方法,这依旧是调用一个类的方法,而不是调用方法的方法。Java 是面向对象的语言,所以思考 Java 的语法的时候,始终要向对象上靠拢。

这里其实相当于构造方法调用自身来构造一个实例(它本身就是一个方法,当然可以调用自己)

看JDK的API文档,在类 Constructor<T>上面说的很清楚

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题