昨天花时间为别人写了个工具类,作用就是生成Rss文件,具体代码如下:
public class RssBuilder {
private SyndFeed feed;
private List entries;
private SyndEntry entry ;
public RssBuilder(){
feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
entries = new ArrayList();
}
public void createChannelImage(String title,String link,String url,String description) throws Exception{
SyndImage image = new SyndImageImpl();
image.setTitle(title);
image.setLink(link);
image.setUrl(url);
image.setDescription(description);
feed.setImage(image);
}
/**
* 创建一个频道
* @param title 频道标题
* @param link 频道对应的连接
* @param description 频道描述
* @param language 频道所用语言
* @param pubDate 频道发布时期
* @param copyright 版权所有
* @throws Exception
*/
public void createChannel(String title,String link,String description,String language,Date pubDate,String copyright) throws Exception{
feed.setTitle(title);
feed.setLink(link);
feed.setDescription(description);
feed.setLanguage(language);
feed.setPublishedDate(pubDate);
feed.setCopyright(copyright);
}
/**
* 添加新闻子项
* @param title 标题
* @param link 连接地址
* @param description 简单描述
* @param pubDate 发布日期
* @param category 所属范围
* @param author 发布作者
* @throws Exception
*/
public void createItems(String title,String link,String description,Date pubDate,String category,String author) throws Exception {
entry = new SyndEntryImpl();
//设置新闻标题
entry.setTitle(title);
//设置新闻的连接地址
entry.setLink(link);
//设置新闻简介
SyndContent content = new SyndContentImpl();
content.setType("text/plain");
content.setValue(description);
entry.setDescription(content);
//设置发布时间
entry.setPublishedDate(pubDate);
//设置频道所属的范围
SyndCategory cate = new SyndCategoryImpl();
cate.setName(category);
List cateList = new ArrayList();
cateList.add(cate);
entry.setCategories(cateList);
//设置作者
entry.setAuthor(author);
//将新闻项添加至数组中
entries.add(entry);
}
/**
* 添加新闻子项
* @param title 标题
* @param link 连接地址
* @param description 简单描述
* @param pubDate 发布日期
* @param category 所属范围
* @param author 发布作者
* @param enclosure 流媒体播放文件地址
* @throws Exception
*/
public void createItems(String title,String link,String description,Date pubDate,String category,String author,String enclosure) throws Exception {
entry = new SyndEntryImpl();
//设置新闻标题
entry.setTitle(title);
//设置新闻的连接地址
entry.setLink(link);
//设置新闻简介
SyndContent content = new SyndContentImpl();
content.setValue(description);
entry.setDescription(content);
//设置发布时间
entry.setPublishedDate(pubDate);
//设置频道所属的范围
SyndCategory cate = new SyndCategoryImpl();
cate.setName(category);
List cateList = new ArrayList();
cateList.add(cate);
entry.setCategories(cateList);
//设置作者
entry.setAuthor(author);
//设置流媒体播放文件
SyndEnclosure en = new SyndEnclosureImpl();
en.setUrl(enclosure);
List enList = new ArrayList();
enList.add(en);
entry.setEnclosures(enList);
//将新闻项添加至数组中
entries.add(entry);
}
/**
* 生成XML文件
* @param filePath 文件保存路径和名称
* @throws Exception
*/
public void buildChannel(String filePath) throws Exception {
feed.setEntries(entries);
SyndFeedOutput output = new SyndFeedOutput();
Writer writer;
writer = new OutputStreamWriter(new FileOutputStream(filePath), "UTF-8");
output.output(feed, writer);
}
}
让我们的项目负责人看了,他要我把createItems()方法中的多个参数再封装一个类,让用户传的时候只传一个包含这个类的List对象,想来想去就是不明白,为什么要这样呢?
按照我现在的写法的话,别人用的时候也不用再写什么特别的类啦,只用把自己从数据库里查询出来的结果的对象以参数的形式传递过来就可以啦,这样不就更简单啦。
为什么一定要传一个List对象呢?
写工具类的时候有什么特别的要求吗?
分享到:
相关推荐
为什么这些问题如此频繁地出现? 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 5.17 说真的,真有...
为什么这些问题如此经常地出现? o 6.12 我很困惑。我就是不能理解这些空指针一类的东西。 o 6.13 考虑到有关空指针的所有这些困惑, 难道把要求它们内部表达都必须为 0 不是更简单吗? o 6.14 说真的, 真有机器用...
18、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里? 19、 一对一、一对多的关联查询 ? 20、MyBatis 实现一对一有几种方式?具体怎么操作的? 21、MyBatis 实现一对多有几种方式,怎么操作的?...
为什么这些问题如此频繁地出现? 60 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 60 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 60 5.17 说真的...
要求同学们在开发环境中,创建一个以姓名和学号命名的工程名称,如zhangsan04010325; 在工程下的src目录下创建15个类包,如ex1,ex2…ex15; 请将每次实验分别保存在工程中的不同类包中,方便实验整理 编写一个Java...
Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法...
老资源。 目录 1 声明和初始化1 1.1 我如何决定使用那种整数类型? . . . .... .... .... ....1.5 关键字auto 到底有什么用途? ....为什么这些问题如此经常地 出现? . . . . . . . . . . . . . . . . . . . ...
消息是以参数的形式传递给某方法的。一个消息通常由三部分组成: 1. 消息传送到对象的名称。 2. 要执行的方法的名称。 3. 方法需要的任意参数。 2.2.4 类 类是一个蓝图或样板,定义了某种类型的所有对象的变量...
如果没有ref,out则默认为值传递,虽然可以在方法中修改这个参数的值,但是修改后的值不会还会到调用该方法的程序中. params :params 关键字可以指定在参数数目可变处采用参数的方法参数 ref :引用传递 out : 7, ...
* 在 Java 中进行赋值操作或函数调用中传递参数时,遵循值传递(Pass By Value)的原则,即传递的永远是参数的值。 * 关键字 this 代表方法的调用者,即本次调用了该方法的对象。 标识符 * 在 Java 语言中,标识符...
熟悉 MATLAB 中深度学习工具箱的使用方法是本次课程设计的关键要求之一。 2. 序列数据神经网络 序列数据神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。RNN 能够处理序列变化的数据...
Python函数的参数传递有两种方式,一种是位置参数,另一种是关键字参数。位置参数是根据参数的位置来传递的,而关键字参数是根据参数的名称来传递的。 9. Python变量的作用域 Python变量的作用域是指变量可以被...
1.为什么wait和notify方法要在同步块中调用? 答案:Java API强制要求这样做,如果你不这么做,你的代码会抛出IllegalMonitorStateException异常。还有一个原因是为了避免wait和notify之间产生竞态条件。 五、Java...
经典控制理论以传递函数为数学工具研究单输入、单输出的自动控制系统的分析和设计方法。主要研究方法有时域分析法、根轨迹法和频率特性法。 现代控制理论的产生:随着科学技术的突飞猛进,特别是空间技术和各类...
每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。 在 HttpServlet 中已存在 ...
"MATLAB应用技术第四章MATLAB与...本章节为读者提供了控制系统的技术指标与要求、自动控制和自动控制系统、直流电动机模型、直流电动机参数计算、MATLAB实现等重要知识点,旨在帮助读者更好地理解和应用MATLAB技术。
答:主要的软件开发方法有:结构化开发方法、Jackson(JSP、JSD)方法、原型化开发方 法、维也纳开发方法(VDM)和面向对象的开发方法。 6. 软件生命期各阶段的任务是什么? 答:软件生命期瀑布模型分为六个阶段: ...
平时可以多看看相关的电子技术杂志网站,看看别人的开发经验,硬件设计方案以及他人的软件设计经验。有可能的话,还可以参加一些电子设计大赛,借此机会2--3个人合作做一个完整系统,会更有帮助。到了大四毕业设计...