应用Iterator模式,却不知为什么出现这样的错误

kafeleung 2003-05-22 08:59:59
加精
以下我的程序,应用Iterator模式进行历遍,由于程序过长,我只筛选了程序的部分,另有一些文件没有给出,以下是MessageDB.java和ObjectIterator.java,和客户端文件test.java。其中还有LongList.java作为聚集,
我想请教大家:
1.我这样的结构好吗??
2.为什么会出现下面的错误:

现在我百思不得其解,真的认为自己写的东西没有错误,但是却报告如下:

程序可能长一些

Note: sun.tools.javac.Main has been deprecated.
C:\resin\doc\WEB-INF\classes\M\basic\ObjectIterator.java:12: Invalid method
declaration; return type required.
public ObjecIterator(int type,long[] elements,int startIndex,int IndexSize) throws ErrorStartOutofRecord
^
C:\resin\doc\WEB-INF\classes\M\Controller\MessageDB.java:68: Wrong number
of arguments in constructor.
return new ObjectIterator(MessageGlobals.IteratorTypeMessage,message.toArray(),startIndex,MessageGlobals.EVERY_PAGE_MESSAGE_SIZE);


-----------------------------------


M\Controller\MessageDB.java:

-----------------------------------
package M.Controller;
import java.sql.*;
import M.Error.ErrorProxyMessage;
import M.Message.*;
import M.MessageGlobals;
import M.basic.*;
import M.Message;

public class MessageDB implements Message
{
private long MessageID;
private String MessageContent;
private String MessageTitle;
private String MessageDatetime;
private long MessageUserID;

public Iterator getMessages(int startIndex) throws M.Error.ErrorProxyMessage
{
String GET_ALL_MESSAGEID="SELECT ID FROM MESSAGE";
LongList message=new LongList();
try
{
Connection conn=connectDB.connectDB();
PreparedStatement pstmt = conn.prepareStatement(GET_ALL_MESSAGEID);
ResultSet rs=pstmt.executeQuery();
while(rs.next())
{
message.add(rs.getLong("ID"));
}
}
catch(SQLException e)
{

}
return new ObjectIterator(MessageGlobals.IteratorTypeMessage,message.toArray(),startIndex,MessageGlobals.EVERY_PAGE_MESSAGE_SIZE);

/*
要说明一下:上面一句message.toArrary是返回long[]的
MessageGlobals是存放一些基本固定的参数
MessageGlobals.IteratorTypeMessage为int类型
MessageGlobals.EVERY_PAGE_MESSAGE_SIZE为int类型
*/

}
}

-----------------------------------


M\Controller\ObjectIterator.java:

-----------------------------------
package M.basic;
import M.*;
import M.Error.*;

public class ObjectIterator implements Iterator
{
private long[] newElements;
private long[] elements;
private int nowPoint;
private ObjectFactory objectFactory;

public ObjecIterator(int type,long[] elements,int startIndex,int IndexSize) throws ErrorStartOutofRecord
{
this.elements=elements;
int EVERY_PAGE_SIZE;
switch(type)
{
case MessageGlobals.IteratorTypeMessage:
this.objectFactory=new ObjectFactory()
{
Message message=new MessageProxy();
public Object loadObject(int index)
{
try
{
message.setID(index);
return message;
}
catch(M.Error.ErrorProxyMessage ex)
{
return message;
}
}
};
break;
case MessageGlobals.IteratorTypeUser:
this.objectFactory=new ObjectFactory()
{
User user=new UserProxy();
public Object loadObject(int index)
{
try
{
user.setID(index);
return user;
}
catch(M.Error.ErrorProxyUser)
{
return user;
}
}
};
break;
}
int start=startIndex-1;
int a=0;
if(start>=0 && start<this.elements.length)
{
if(this.elements.length-start>=IndexSize)
{
for(int i=start;i<=(start+IndexSize);i++)
{
this.newLongList[a]=elements[i];
a++;
}
}
else
{
for(int i=start;i<=(LongList.getSize()-1);i++)
{
this.newLongList[a]=elements[i];
a++;
}
}
}
else
{
throw new ErrorStartOutofRecord();
}

}

public void setFirst()
{
this.nowPoint=0;
}

public boolean hasNext()
{
if(this.nowPoint>=this.newLongList.length)
{
return false;
}
else
{
return true;
}
}
public Object next()
{
Object nextObject=this.objectFactory.loadObject(this.newLongList[this.nowPoint]);
this.nowPoint++;
return nextObject;
}
}


interface ObjectFactory {

public Object loadObject(int index);

}


-----------------------------------


客户端代码:test.java

-----------------------------------

package M;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import M.basic.*;
import M.Controller.*;

public class test extends HttpServlet
{
public Message messageObject;
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException
{
PrintWriter out=response.getWriter();
try
{
Message me=new MessageProxy(1);
Iterator message=messageObject.getMessages(1);
while(message.hasNext())
{
Message Mo;
Mo=(Message)message.next();
Mo.getMessageProperty();
out.println(Mo.getContent());
}
}
catch(M.Error.ErrorProxyMessage ex)
{

}


}
}


...全文
40 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesmile979 2003-05-22
  • 打赏
  • 举报
回复
ObjecIterator------->ObjectIterator

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧