我是JSP的重要人物,我对两者之间的区别感到困惑
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>

最佳答案

只需看一下the Enumeration documentation。同时查看the generic types documentation

通过使用Enumeration,您将使用Enumeration<Object>,因为它是默认设置。此<Object>所做的只是表明Enumeration类,在该特定实例中,它调用E的类型(在Enumeration Documentation中)将解析为Object。通过使用<String>的情况相同:称为E的类型将解析为String。

如果选中nextElement() signature,它将返回E。因此,通过使用EnumerationEnumeration<Object>,该方法将返回Object,并且您需要执行的强制转换:

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


通过使用Enumeration<String>该方法将返回一个字符串,因此您可以直接执行以下操作:

 String headerName = headerEnum.nextElement();

关于java - 枚举<>枚举差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41609375/

10-10 13:59