JDK之Enumeration

2024-03-28 04:18
文章标签 jdk enumeration

本文主要是介绍JDK之Enumeration,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

源码

package java.util;/*** @author  Lee Boynton* @since   JDK1.0*/
public interface Enumeration<E> {boolean hasMoreElements();E nextElement();
}

Enumeration的遍历

Spring之ContextCleanupListener源码

package org.springframework.web.context;import java.util.Enumeration;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.DisposableBean;public class ContextCleanupListener implements ServletContextListener {private static final Log logger = LogFactory.getLog(ContextCleanupListener.class);@Overridepublic void contextInitialized(ServletContextEvent event) {}@Overridepublic void contextDestroyed(ServletContextEvent event) {cleanupAttributes(event.getServletContext());}static void cleanupAttributes(ServletContext sc) {Enumeration<String> attrNames = sc.getAttributeNames();// 测试此枚举是否包含更多的元素while (attrNames.hasMoreElements()) {// 如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。String attrName = attrNames.nextElement();if (attrName.startsWith("org.springframework.")) {Object attrValue = sc.getAttribute(attrName);if (attrValue instanceof DisposableBean) {try {((DisposableBean) attrValue).destroy();}catch (Throwable ex) {logger.error("Couldn't invoke destroy method of attribute with name '" + attrName + "'", ex);}}}}}}

相关源码

  • org.apache.catalina.core.ApplicationContext.getAttributeNames()方法
@Override
public Enumeration<String> getAttributeNames() {Set<String> names = new HashSet<>();names.addAll(attributes.keySet());return Collections.enumeration(names);
}
  • java.util.Collections.enumeration(Collection)方法
public static <T> Enumeration<T> enumeration(final Collection<T> c) {return new Enumeration<T>() {private final Iterator<T> i = c.iterator();public boolean hasMoreElements() {return i.hasNext();}public T nextElement() {return i.next();}};
}

这篇关于JDK之Enumeration的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854414

相关文章

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

mac jdk 1.7 dmg 官方版

百度云下载 https://pan.baidu.com/s/1SQiidrPFF5aZr4xlx0ekoQ https://pan.baidu.com/s/1SQiidrPFF5aZr4xlx0ekoQ   补充说明: 实际上oracle对于历史版本的jdk都有归档可以在官方网站上下载,只是需要注册个号就可以了。 地址如下: https://www.oracle.com/cn/java

配置Java(JDK)环境变量

一、配置JDK环境变量 将JDK-22压缩包加压缩到指定目录下面,本机路径是:C:\Program Files\Java(可以加压缩到自己的指定路径,记住这个路径,配置环境变量时候要使用)。 鼠标右键“此电脑”,点击“属性”,点击“高级系统设置”,然后进入“环境变量”。 点击“新建”,然后变量名填“JAVA_HOME”,变量值填自己的JDK的下载路径,我这里是“C:\\P

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom

JVM、JRE和 JDK:理解Java开发的三大核心组件

Java是一门跨平台的编程语言,它的成功离不开背后强大的运行环境与开发工具的支持。在Java的生态中,JVM(Java虚拟机)、JRE(Java运行时环境)和JDK(Java开发工具包)是三个至关重要的核心组件。本文将探讨JVM、JDK和JRE的区别,帮助你更好地理解Java的运行机制。 1. JVM:Java虚拟机(Java Virtual Machine) 什么是JVM? JVM,即

eclipse中,更新JDK之后,启动Tomcat报错:

更新到这个版本之后,启动Tomcat报错: 四月 25, 2016 10:13:20 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The APR based Apache Tomcat Native library which allows optimal performance in prod

JdK版本介绍

JDK(Java Development Kit)是Java开发的核心工具包,它包含了Java运行时环境(JRE)以及Java开发工具(如编译器、调试器等)。JDK的版本更新不断,每个版本都带来了新特性、性能改进和安全性增强。     JDK的版本号遵循一定的命名规则,从JDK 1.0开始,逐渐发展到现在的JDK 17(截至我最后更新的知识,Java社区已经发布了更高版本的预览或早期访问版本

Java JDK 开发环境的配置

安装JDK,安装过程中可以自定义安装目录等信息,将jdk和jre安装在同一个目录下。(这是我遇到的问题:当jdk和jre不在同一个目录下时出现java可以找到目录,而javac提示不是内部命令。)         安装完成后,右击“我的电脑”,点击“属性”;         选择“高级系统属性”,点击“环境变量”;         在“系统变量”中,设置3项

maven学习笔记【指定jdk】

在pom文件中新增下配置 <dependency> <!-- 指定tools版本 --><groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6.0</version> <scope>system</scope> <systemPath>D:/Program Files (x86)/Java/jdk1

JDK动态代理详解(动态代理类源码解析)

简介 JDK动态代理就是在程序运行时,运用反射机制动态创建代理类,实现对目标类代码的增强。动态代理类的字节码在程序运行时由Java反射机制动态生成,不需要去手动开发。相比较静态代理,它更灵活。更容易扩展,代码 开发工作量更小,更容易维护。动态代理又分为JDK动态代理和CGLIB动态代理,一个通过反射生成代理类,一个通过asm开源包,修改字节码生成子类。区别在于JDK只能代理接口,所以有需要代理的类