2017-01-12 5 views
1

Я biginner в JSP и я путать о разнице между Enumeration и Enumeration<type> Я учусь с этим корейской книги и пример источника в нем говорит Enumeration с затмением неона версия не работает. Он работает только тогда, когда он пишет 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.

Если вы проверяете nextElement() signature он возвращает E. Так, с помощью Enumeration или Enumeration<Object>, что метод будет возвращать объект, и вы будете нуждаться в актерский вы сделали:

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

Используя Enumeration<String> метод возвращает строку , так что вы можете непосредственно сделать это:

String headerName = headerEnum.nextElement();