【问题标题】:passing an parameter to an array of objects将参数传递给对象数组
【发布时间】:2026-01-18 15:50:01
【问题描述】:

我创建了一个这样的对象数组:

Handler handlers[] = new Handler[4];

每个处理程序对象都接受一个套接字对象作为参数。如何通过处理程序的套接字?我想更一般地说,我如何传递对象数组中的参数?

我试过了:

handlers[1](someSocket);

它(显然?)没有工作。

【问题讨论】:

  • 您已经创建了一个数组。您尚未创建 任何 Handler 对象。
  • @SotiriosDelimanolis 好的,哇,我想我已经弄明白了。我会为数组的所有成员执行此操作吗:handlers[0] = new Handler(listener.accept());

标签: java arrays oop object


【解决方案1】:

这个

Handler handlers[] = new Handler[4];

为 4 个Handler 实例分配空间,它不分配任何实际的Handler(s)。你可以这样做,

Handler[] handlers = new Handler[4];
for (int i = 0; i < handlers.length; i++) {
  handlers[i] = new Handler();
}

甚至

Handler[] handlers = new Handler[] {
  new Handler(), new Handler(), new Handler(), new Handler()
};

【讨论】:

    【解决方案2】:

    遍历数组中的每个元素。创建一个新的处理程序,传递一个套接字,并将其存储在数组中,如下所示:

    Handler handlers[] = new Handler[4];
    for(int index=0;index<4;index++){
        handlers[index]= new Handler(socket);
    }
    

    【讨论】: