2017-01-12 11 views
1

私はこの韓国語の本で学んだし、それの例のソースは、日食のネオンとEnumeration を言う私は、JSPでbiginnerだと私は EnumerationEnumeration<type> の違いについて混乱していますバージョンは動作しません。それは、 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 Documentation内の)Eを呼び出すタイプがObjectに解決されるEnumerationクラスを示しています。 <String>を使用すると、同じことが起こります.Eという型はStringに解決されます。

あなたがnextElement() signatureをチェックする場合は、メソッドはオブジェクトを返しますEnumerationまたはEnumeration<Object>を使用することにより、E.だから、を返し、あなたがやったキャストが必要になります。メソッドは文字列を返しますEnumeration<String>を使用することにより

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

をあなたが直接行うことができますので、:

String headerName = headerEnum.nextElement();