使用泛型和并发改善集合 - 编程入门网
以您可以忽略它们。但是,修复该集合以显式地指 定类型,将会避免在编译时遇到这些警告引起的一个真正的错误。
禁止编译器警告 如果您使用的是一个不能或不想更改的库,那么您可以禁止编译器警告。 @SuppressWarnings 注释会告诉编译器您知道代码生成了警告,但是您不想看到 它们。如果您将下面这行代码添加到想要忽略其警告的方法前面,则编译器不再 显示该方法的警告:
现在,当您编译该类时,将不会看到警告消息或错误消息。如果处理未预料 到的数据类型,您仍然有可能获得 ClassCastException。选择权在您手中。 读取网页 现在您应该深刻了解了泛型的用途,以及它们如何使您的程序更容易维护。 下一步是创建一个程序来收集某个特定网页上的所有链接。尽管您可以自己写一 个程序来读取网页并解析其内容,但是不必这么做。Swing 组件库提供了这项功 能。您需要做的就是查找与页面上的锚(<a>)标记相关联的 href 属性 。 使用泛型和并发改善集合(4)时间:2011-06-16 John Zukowski获取文档 javax.swing.text.html 包包含一个 HTMLEdito***t。如果您向它提供一个 流,它会解析相关的网页。根据这个解析的流,您可以告诉工具箱遍历所有可用 的标记,并获得锚标记的 href 属性。程序的功能还可以更加丰富,可以收集图 像标记或 Flash 影片,但是它只会收集 <a href="...">xxx</a> 形式的内容。 您需要做的只是创建一个新的 HTMLEdito***t 实例,并将一个 Reader 传入 到内容中。因为想法是从远程网站获得内容,所以您必须使用在命令行输入的 http:// 字符串来获得 Reader,该字符串随后被传递到 URL 构造器,您可以从 中获得一个 URLConnection。这个过程听起来很复杂,其实并不是这样。清单 4 显示了它的工作原理: 清单 4. 读取网页
与连接相关联的输入流被提供给 Edito***t 的 read() 方法。read() 的其 他参数包括一个 Document 和一个开始读取的位置,前者是您通过调用工具箱的 createDefaultDocument() 方法创建的,后者通常为 0,表示流的起点。 清单 4 添加了两个有帮助的附加任务。调用 HttpURLConnection 类的 setFollowRedirects() 方法可禁止后面的重定向请求。而设置 Document 的 IgnoreCharsetDirective 属性是因为,当页面的 <meta> 标记中包含一 个 charset 属性时,HTMLEdito***t 中明显存在一个 bug。 遍历元素 您将使用的下一个 Swing 类是 ElementIterator,可以在 javax.swing.text 包中找到。使用 Document(与刚创建的 Document 类似), 您可以遍历其中所有的元素:
通过搜索 <a> 标记,您可以获得相关的 href 属性并添加到发现的链 接集合中。这里使用的集合是一个 Set,因为没有必要收集重复的内容:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |