应用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)
{

}


}
}


...全文
44 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesmile979 2003-05-22
  • 打赏
  • 举报
回复
ObjecIterator------->ObjectIterator
构网型变流器正负序阻抗解耦特性及扫频验证研究(Simulink仿真实现)内容概要:本文围绕构网型变流器的正负序阻抗解耦特性及其扫频验证方法展开研究,基于Simulink平台构建仿真模型,深入分析构网型变流器在不对称电网条件下的阻抗特性。通过建立正负序阻抗模型,揭示其解耦机理,并采用小信号注入法进行扫频仿真,提取频率响应数据以验证理论建模的准确性。研究重点在于掌握构网型变流器在复杂电网环境中的稳定性表现,尤其是其与电网交互作用下的动态响应特性,为提升新型电力系统中逆变器并网稳定性提供理论支持和技术路径。; 适合人群:具备电力电子、电力系统分析或自动控制相关背景,熟悉Simulink仿真工具,从事新能源并网、微电网控制、逆变器建模与稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握构网型变流器正负序阻抗建模与解耦分析方法;② 学习基于扫频法的小信号稳定性评估技术;③ 应用于构网型逆变器控制系统设计与并网稳定性优化;④ 支撑高水平论文撰写与科研项目实施。; 阅读建议:建议读者结合Simulink仿真模型同步操作,深入理解扫频仿真流程与阻抗提取方法,关注正负序耦合对系统稳定性的影响机制,同时参考文中建模思路拓展至其他类型变流器的稳定性分析研究。
【虚拟储能】建筑综合能源优化+热舒适度研究(Matlab代码实现)内容概要:本文围绕“虚拟储能”概念,重点研究建筑综合能源系统的优化运行与热舒适度提升,采用Matlab进行代码实现与仿真分析。通过构建空调与电动汽车联合虚拟储能模型,实现对海岛微电网或建筑能源系统的协同优化调度,旨在平衡能源供需、降低能耗、提高可再生能源利用率,并兼顾用户的热舒适性需求。文中整合了智能优化算法、需求响应机制与多目标优化策略,展示了如何利用虚拟储能技术增强系统灵活性和经济性。; 适合人群:具备一定电力系统、能源系统或自动化背景,熟悉Matlab/Simulink仿真工具,从事相关领域科研工作的研究生及工程技术人员;尤其适合研究综合能源系统、微电网优化、需求侧管理与建筑节能方向的研究者。; 使用场景及目标:① 实现建筑或微电网中空调、电动汽车等柔性负荷参与虚拟储能的建模与仿真;② 掌握基于Matlab的综合能源系统多目标优化调度方法;③ 学习如何将热舒适度指标融入能源优化模型,提升系统的人性化与实用性;④ 为撰写高水平论文(如SCI/EI)或完成硕士/博士课题提供复现案例和技术支持。; 阅读建议:建议结合文中提供的完整资源(包括代码、文献、仿真模型)进行实践操作,重点关注目标函数设计、约束条件设定及算法实现细节。同时可参照其他类似主题(如V2G、需求响应、多能协同优化)的内容拓展研究思路。

51,407

社区成员

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

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