比如说我已经定义了一个类public class MyThread extends Thread,那么我想建立一个该类的对象的数组应该怎么操作,我这样写程序就报错了,不知道是什么原因?
这是我的main
public class Main {
private static int i = 0;
private static MyThread player[];
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(5555);
while(true)
{
Socket s = ss.accept();
player[i] = new MyThread(s, i);//报错语句
player[i].start();
i++;
//client[i] = MyThread(s);
}}
}
这是我的main
public class Main {
private static int i = 0;
private static MyThread player[];
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(5555);
while(true)
{
Socket s = ss.accept();
player[i] = new MyThread(s, i);//报错语句
player[i].start();
i++;
//client[i] = MyThread(s);
}}
}
player是null吧,player[i]是什么?
{
//num = i;
//socket = s;
}这里的i不需要是static的吧。在while循环外定义就好了。
//while(true)
// {
// Socket s = ss.accept();
// player[i] = new MyThread(s, i);//报错语句
// player[i].start();
// i++;
// //client[i] = MyThread(s);
// }
//最好改下,改成
//Socket s = ss.accept();
//这时s有可能为null,虽然jdk里说是获得socket,但实际上不是,我以前也碰到过这样的问题
Socket s = null;
while((s=ss.accept)!=null){
player[i] = new MyThread(s, i);//报错语句
player[i].start();
i++; }
2、Thread player[];没有定义大小就使用了