getDeclaredConstructors
全部标签 对于我们应用程序的一次安装,我们一直在生产中看到用户报告为“系统变慢”或“请求永不返回”的问题。最后不得不重启服务器。我们遇到了几起这样的事件,每晚重启服务器似乎是一种解决方法。我们的应用程序大量使用动态类加载(.jar文件作为blob存储在数据库中)和反射。环境详情:Java1.7.021操作系统:Linux(2.6.32-504.16.2.el6.x86_64)JBossEAP6.2正在使用Appdynamics内存和gc设置:-XX:PermSize=256m-XX:MaxPermSize=2560m-Xms2048m-Xmx10240m-server-XX:+UseParall
Class::getDeclaredConstructor(http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getDeclaredConstructor-java.lang.Class...-)的javadoc说:ReturnsaConstructorobjectthatreflectsthespecifiedconstructoroftheclassorinterfacerepresentedbythisClassobject.[emphasismine]既然不能为接口(interface)声明构造函数,那么
Class::getDeclaredConstructor(http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getDeclaredConstructor-java.lang.Class...-)的javadoc说:ReturnsaConstructorobjectthatreflectsthespecifiedconstructoroftheclassorinterfacerepresentedbythisClassobject.[emphasismine]既然不能为接口(interface)声明构造函数,那么
我注意到在Java反射API中有两种不同的方法来调用构造函数:getDeclaredConstructors/getConstructors方法。尽管Java文档略有不同(getDeclaredConstructors似乎暗示它返回所有构造函数,而不是公共(public)构造函数),但不清楚为什么API明确支持这两种不同的方法。更重要的是,我想知道:如果我们动态调用类,什么时候一种方法比另一种更可取?比如访问私有(private)构造函数的目的是什么? 最佳答案 getDeclaredConstructors(当你想要所有构造函数时