首页 > 学院 > 开发设计 > 正文

从 request.getParameterNames() 到 Enumeration

2019-11-06 07:55:27
字体:
来源:转载
供稿:网友

工作中看到一段代码

Enumeration<String> enumeration = request.getParameterNames();

然后网上查了一下,发现是实现Enumeration接口之后,就可以构造一种数据结构,可以用来遍历数据。

而这里的request就是javax.servlet.http.HttpServletRequest,HttpServletRequest.getParameterNames()的返回类型就是Enumeration

然后模仿着写了一个测试方法,对Enumeration有了较为直观的理解

首先是实现 Enumeration 接口,使用了泛型

MyEnumeration

package com.demo.enumeration;import java.util.Enumeration;/* *实现 Enumeration 接口 构造新的类型  */public class MyEnumeration<E> implements Enumeration<E> {	int count; // 计数器	int length; // 存储的数组的长度	Object[] dataArray; // 存储数据数组的引用	/**	 * 	 * @param count 起始计数 为0即可从第一个开始计数	 * @param length 参数树木	 * @param dataArray 保存具体参数的数组	 */	MyEnumeration(int count, int length, E[] dataArray) {		this.count = count;		this.length = length;		this.dataArray = dataArray;	}	@Override	public boolean hasMoreElements() {		return count<length;	}	@SupPRessWarnings("unchecked")	@Override	public E nextElement() {		return (E) dataArray[count++];	}}

然后是测试类

package com.demo.enumeration;import java.util.Enumeration;import org.junit.Before;import org.junit.Test;/** *  * @主题 Enumeration 列举 * @描述 Enumeration 是一个接口,在继承其之后可以遍历里面的数据 * @举例 * import javax.servlet.http.HttpServletRequest; * //获取请求参数KEY集合 * Enumeration<String> enumeration = request.getParameterNames(); * @author Jecket */public class EnumerationTest {	//声明一个 MyEnumeration 对象	private MyEnumeration<String> MyEnumeration;	/**	 * 先实例化一个构造类型,以便在测试方法中直接遍历内容	 */	@Before	public void beforetest(){		//实例化一个				String[] dataArray=new String[]{"参数1","参数2","参数3"};		MyEnumeration=new MyEnumeration<String>(0, 3, dataArray);	}		@Test	public void test1(){		Enumeration<String> e=MyEnumeration;		while(e.hasMoreElements()){			System.out.println(e.nextElement());		}	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表