中易网

java编程类的初始化怎么说成是枚举类型

答案:1  悬赏:50  
解决时间 2021-05-12 14:34

源代码:

import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*;

class State{
 private String name;
 private int mystate;
 
 public State()
 {
  
 }
 
 public void setName(String name)
 {
  this.name = name;
 }
 public void setMystate(int mystate)
 {
  this.mystate = mystate;
 }
 
 public String getName()
 {
  return name;
 }
 
 public int getMystate()
 {
  return mystate;
 }
}

public class ChatServer {
 public static void main(String args[]) {
  Hashtable<String,DataOutputStream> userList = new Hashtable<String,DataOutputStream>();
  String name;
  DataInputStream dis;
  DataOutputStream dos;
  try{
   ServerSocket ss = new ServerSocket(9999);
   while(true){
    Socket s = ss.accept(); 
    dis = new DataInputStream(s.getInputStream());
    dos = new DataOutputStream(s.getOutputStream());
    name = dis.readUTF();
    userList.put(name,dos);
    new MyServerReader(name,dis,userList).start();
   }
  }catch(Exception e){
   e.printStackTrace(); 
  }
 }
}

class MyServerReader extends Thread{
 private String name;
 private DataInputStream dis;
 private Hashtable<String,DataOutputStream> userList;
 private State all[] = new State[160];
 public MyServerReader(String name,DataInputStream dis,Hashtable<String,DataOutputStream> userList ){
  this.name = name;
  this.dis = dis; 
  this.userList = userList;
  for(int i=0;i<160;i++)
  {
   all[i] = new State();
   all[i].setName(String.valueOf(name));
   all[i].setMystate(0);
  }
 }
 public void run(){
  String info;
  for(int i=0;i<160;i++)
  {
   if(all[i].getMystate() == 0)
   {
    all[i].setMystate(1);
    transmitTitle("\n\t┌──────────────────────┐","");
    transmitTitle("\t│                                            │","");
    transmitTitle("\t│          欢迎使用xxxx留言系统!         │","");
    transmitTitle("\t│                                            │","");
    transmitTitle("\t└──────────────────────┘\n\n\n","");
   }
  }
  
  try{
   transmitMessageSystem(name + " 进入系统!","--系统消息--"); 
   while(true){
    info = dis.readUTF();
    if(info.equals("bye")){
     DataOutputStream dos = (DataOutputStream)(userList.get(name));
     Thread.sleep(1000);
     dos.close();
     dis.close();
     userList.remove(name);
     transmitMessageSystem(name + " 退出系统!","--系统消息--"); 
     break;
    }else if(info.length()>0){
     transmitMessage(info,name); 
    }
   }  
  }catch (Exception e) {
  }
 }
 public void transmitMessageSystem(String msg,String name){
  Collection doses = userList.values();
  DataOutputStream dos;
  for(Object o: doses){
   dos = (DataOutputStream)o;
   try{
    
    dos.writeUTF(name + "(" + getTime() +") :" + msg);
   }catch(Exception e){
   }
  }   
 }
 public void transmitTitle(String msg,String name){
  Collection doses = userList.values();
  DataOutputStream dos;
  for(Object o: doses){
   dos = (DataOutputStream)o;
   try{
    dos.writeUTF(name + msg);
   }catch(Exception e){
   }
  }   
 }
 public void transmitMessage(String msg,String name){
  Collection doses = userList.values();
  DataOutputStream dos;  
  for(Object o: doses){
   dos = (DataOutputStream)o;
   try{
    dos.writeUTF(name + "(" + getTime() + ") 说:\n" + msg);
   }catch(Exception e){
   }
  }   
 }
 private String getTime()
 {
  Calendar c = Calendar.getInstance();
  int yea = c.get(Calendar.YEAR);
  int mon = c.get(Calendar.MONTH) + 1;
  int dat = c.get(Calendar.DATE);
  int hou = c.get(Calendar.HOUR_OF_DAY);
  int min = c.get(Calendar.MINUTE);
  int sec = c.get(Calendar.SECOND);
  String time = yea + "-" +
                (mon-10<0?"0"+mon:mon) + "-" +
                (dat-10<0?"0"+dat:dat) + " " +
                (hou-10<0?"0"+hou:hou) + ":" +
                (min-10<0?"0"+min:min) + ":" +
                (sec-10<0?"0"+sec:sec) + " ";
  return time;
 }  
}

 

编译结果是:

--------------------配置: <默认>--------------------
e:\desktop\chapter17\17-07\ChatServer.java:68: 无法实例化枚举类型
                        all[i] = new State();
                                 ^
e:\desktop\chapter17\17-07\ChatServer.java:69: 找不到符号
符号: 方法 setName(java.lang.String)
位置: 类 java.lang.Thread.State
                        all[i].setName(String.valueOf(name));
                              ^
e:\desktop\chapter17\17-07\ChatServer.java:70: 找不到符号
符号: 方法 setMystate(int)
位置: 类 java.lang.Thread.State
                        all[i].setMystate(0);
                              ^
e:\desktop\chapter17\17-07\ChatServer.java:77: 找不到符号

符号: 方法 getMystate()
位置: 类 java.lang.Thread.State
                        if(all[i].getMystate() == 0)
                                 ^
e:\desktop\chapter17\17-07\ChatServer.java:79: 找不到符号
符号: 方法 setMystate(int)
位置: 类 java.lang.Thread.State
                                all[i].setMystate(1);
                                      ^
5 错误

最佳答案

你创建的State对象怎么能给数组呢


他也不是数组类型的

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天龙八部这武魂第3个技能是群吗
广福茶馆溧阳店怎么去啊,有知道地址的么
1000-1500的好手机,本人喜欢MOTO,诺基亚也可
请问一下我是什么座
祁东有藏翱卖吗?请问在那可以买到价格如何?
我CF进游戏就出现错误代码23 0 然后就会自动
金鑫加油站在什么地方啊,我要过去处理事情
怎么才能取到支付密码?
关于兑换问题
梦见一条大鱼咬住我不放,但是他咬的我不疼
没有金钱就没有爱情吗
保持艰苦奋斗的政治作风方面的正面例子有哪些
**脱过皮,长出来后就一块块硬硬的,怎么办?
弄到msn了,怎么跟人家说我的msn地址啊
可心汽修保养我想知道这个在什么地方
推荐资讯
请问PH是什么的简写
台小湾,你啥时回家团圆吃饭?
3ds max灯光怎么打
敬贤阁地址在什么地方,想过去办事
假如没有了电脑,你会做什么去?
高二(快高三)学生如何提高英语成绩、具体方
丑女无敌第三季雷囧的视频
什么样的手提电脑配置和质量好一些?
维塔卡尼 排铅 糖有用吗?
中山装为什么有个内兜?
qq农场怎么赚钱最快!!
周润发和刘德华谁影响力大
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?