class Test {
 public Test(String s) {
  }}Test.class.getConstructors()[0].newInstance(null) 这样的写法是会出错的。因为传递null 表示无参数构造函数。但我有一个参数,而我需要用null传递进去该怎么办呢?

解决方案 »

  1.   

    try this:newInstance(new String[]{null});
      

  2.   

    这样就没有意义了啊,那不如直接(String)null这样就好了。就是因为我不知道目标参数类型所以才需要这样写的
      

  3.   

    Test.class.getConstructors()[0].newInstance() ;应该这样子吧 ?Test中如果有带参数的构造函数 ,则一定要有
    public Test(){
    }构造函数 ;
    否则 就无所谓啦
      

  4.   

    我现在类中只有一个带一个参数的构造函数。不允许有无参数构造函数。而这个参数我不知道具体是什么类型,但我想传一个null进去。通过反射无法做到。
      

  5.   

    刚刚也碰到了这个问题,直接把要用反射来调的方法里的参数都封装到一个对象里就好了
    eg:void test(String arg1,int arg2)>>>void test(Dto dto);
    Dto(){
    String arg1;
    int arg2;
    }