2017-01-12 132 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();