账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Java反射机制实例化带多个参数的对象怎么写?
    29
    0

    Class[] argsClass = new Class[2];

        argsClass[0] = Integer.class;
        argsClass[1] = String.class;
        User user2 = (User) userClass.getConstructor(argsClass).newInstance(new Object[]{12, "awe"});
    

    报错信息:
    java.lang.NoSuchMethodException: com.bean.User.<init>(java.lang.Integer, java.lang.String)

    at java.base/java.lang.Class.getConstructor0(Class.java:3322)
    at java.base/java.lang.Class.getConstructor(Class.java:2108)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • cuan妹, 普通会员 1楼

      在Java中,反射机制可以用来创建、修改、删除对象和类。如果你想要在反射机制中创建带多个参数的对象,你可以使用Java的 Constructor 对象和构造方法。

      以下是一个例子:

      ```java import java.lang.reflect.Constructor;

      public class Main { public static void main(String[] args) throws Exception { // 创建一个构造函数,它接受两个参数 Constructor<?> constructor = MyClass.class.getDeclaredConstructor(String.class, String.class); constructor.setAccessible(true); constructor.setParameters(new String[] {"Hello", "World"}); // 创建一个对象 MyClass myObject = (MyClass) constructor.newInstance("Hello", "World"); System.out.println(myObject.getHello()); } }

      class MyClass { private String hello; private String world;

      public MyClass(String hello, String world) {
          this.hello = hello;
          this.world = world;
      }
      
      public String getHello() {
          return hello;
      }
      
      public void setHello(String hello) {
          this.hello = hello;
      }
      
      public String getWorld() {
          return world;
      }
      
      public void setWorld(String world) {
          this.world = world;
      }
      

      } ```

      在这个例子中,我们首先获取了 MyClass 类的构造函数的 Declaration,然后使用 setAccessible(true) 方法使这个构造函数可以被实例化。然后,我们创建了一个 MyClass 对象,并使用构造函数的 setParameters 方法传入了两个参数。最后,我们使用 get 和 set 方法访问了对象的属性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部