2017-01-12 104 views
1

我在JSP中的biginner,我很困惑,我这个韩国的书,其中的示例源学习 EnumerationEnumeration<type> 之间的区别说Enumeration 与Eclipse霓虹灯版本不起作用。它只在写入时才有效 Enumeration<String>。有人能告诉我有什么不同吗?枚举<>枚举差异

<%@page import="java.util.Enumeration"%> 
<%@ page language="java" contentType="text/html; 

charset=UTF-8"pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>헤더 목록 출력</title> 
</head> 
<body> 
<% 
    Enumeration<String> headerEnum = request.getHeaderNames(); 
    while(headerEnum.hasMoreElements()){ 
     String headerName = (String)headerEnum.nextElement(); 
     String headerValue = request.getHeader(headerName); 

%> 
<%=headerName %> = <%=headerValue %> <br> 
<% 
    } 
%> 

</body> 
</html> 
+0

可能重复[这是什么<>(尖括号)在Java中意味着什么?(http://stackoverflow.com/questions/6607550/what-does-angle-括号 - 均在-JAVA)。 –

回答

1

只要看看the Enumeration documentation。还查看the generic types documentation

通过使用Enumeration您正在使用Enumeration<Object>,因为它是默认值。 <Object>所做的只是指出在该特定实例中Enumeration类,它调用E的类型(在枚举文档中)将被解析为Object。通过使用<String>发生相同的情况:称为E的类型将被解析为String。

如果你检查它返回E.所以nextElement() signature,通过使用EnumerationEnumeration<Object>该方法会返回一个对象,你会需要你做演员:

String headerName = (String)headerEnum.nextElement(); 

通过使用Enumeration<String>该方法将返回一个字符串,这样你就可以直接做这样的:

String headerName = headerEnum.nextElement();