首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java监听器必须从java.util.EventListener继承 - 为什么?

在Java中,监听器通常需要实现java.util.EventListener接口,这是因为java.util.EventListener是Java Bean组件模型(Java Beans Specification)的一部分,它为事件处理提供了一个通用的监听器接口。实现java.util.EventListener接口可以确保监听器与其他Java Bean组件兼容,并且可以在事件源和监听器之间建立标准的通信机制。

因此,Java监听器必须从java.util.EventListener继承,以确保它们可以与其他Java Bean组件兼容,并且可以在事件源和监听器之间建立标准的通信机制。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java监听器入门到放弃?

1、什么是监听器 监听器就是实现一个特定接口的java程序,此程序专门用来监听另一个类方法的调用。...下面就以GUI编程来说明监听器监听器都使用到了观察者模式,观察者模式所定义的对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都会得到通知自动更新。...listener> cn.zq.listener.MyServletContextListener (2)jsp...,使用了这个监听器,那么javabean就与这个接口耦合起来了,增加了耦合度,那么意味着这个javabean就必须依赖servel api而存在,没有了就会出现错误 2.7、HttpSessionActivationListener...--监听对象的活化和钝化 实现此接口的javabean可以感知活化(硬盘到内存)或钝化(内存到硬盘)的过程,如果同时需要保存在session中的javabean,则此javabean需要实现Serializable

2.8K31

Java基础】 为什么Java不支持多继承

因此在Java中并不允许多继承,但是Java可以通过以多接口的方式实现多继承的功能,即一个子类复用多个父类的方法。当接口中有同名方法时,子类必须重写同名方法。...而又因为Java支持同时实现多个接口,这就相当于通过implements就可以多个接口中继承到多个方法了,但是,Java8中为了避免菱形继承的问题,在实现的多个接口中如果有相同方法,就会要求该类必须重写这个方法...当两个类(如B和C)同一个基类(如A)虚继承时,无论这个基类被继承多少次,最终派生类(如D)中只包含一个基类A的实例。...D : public B, public C { // DB和C继承,B和C都是A虚继承而来};int main() { D d; d.value = 2; // 正确,无歧义,...更多属性}现在,我们创建一个类ClassC,它假设性地ClassA和ClassB中继承:// 假设的多重继承,在Java中实际上是不允许的class ClassC extends ClassA, ClassB

8710

Java为什么要使用单继承而不是多继承

继承虽然能使子类同时拥有多个父类的特征,但是其缺点也是很显著的,主要有两方面: (1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量...正因为有以上的致命缺点,所以java中禁止一个类继承多个父类; 在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点。...对于一个接口继承多个父接口的情况也一样不存在这些缺点。...总结: java为什么要单继承,多实现,总结如下: 若为多继承,那么当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用了单继承为什么是多实现呢?...通过实现接口拓展了类的功能,若实现的多个接口中有重复的方法也没关系,因为实现类中必须重写接口中的方法,所以调用时还是调用的实现类中重写的方法。 那么各个接口中重复的变量又是怎么回事呢?

1.5K10

Java基础】 为什么Java不支持多继承

因此在Java中并不允许多继承,但是Java可以通过以多接口的方式实现多继承的功能,即一个子类复用多个父类的方法。当接口中有同名方法时,子类必须重写同名方法。...而又因为Java支持同时实现多个接口,这就相当于通过implements就可以多个接口中继承到多个方法了,但是,Java8中为了避免菱形继承的问题,在实现的多个接口中如果有相同方法,就会要求该类必须重写这个方法...当两个类(如B和C)同一个基类(如A)虚继承时,无论这个基类被继承多少次,最终派生类(如D)中只包含一个基类A的实例。...D : public B, public C { // DB和C继承,B和C都是A虚继承而来};int main() { D d; d.value = 2; // 正确,无歧义,...更多属性}现在,我们创建一个类ClassC,它假设性地ClassA和ClassB中继承:// 假设的多重继承,在Java中实际上是不允许的class ClassC extends ClassA, ClassB

11510

Spring的容器内部事件发布自定义事件机制Spring 的容器内事件发布类结构应用场景

监听器负责处理具体的事件,当某个事件发生时,监听器也给出具体的回应。...package com.javadu.event; import java.util.EventListener; public interface MethodExecutionEventListener...eventPublisher.methodToMonitor();//发布事件 } } Java SE中标准的自定义事件实现就是这个样子,涉及三个角色,即自定义事件类型、自定义的事件监听器和自定义的事件发布者...ApplicationEvent:Spring容器内的事件类型,继承java.util.EventObject,这是一个抽象类,Spring提供了三个具体的实现——ContextCloseEvent、...ApplicationListener: Spring容器内使用的事件监听接口,继承java.util.EventListener

90620

Java中的String类能否被继承为什么

不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的。...Java对String类的定义: public final class String implements java.io.Serializable, Comparable, CharSequence...{ // 省略...  } final修饰符的用法: 1.修饰类   当用final修饰一个类时,表明这个类不能被继承。...第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。...在最近的Java版本中,不需要使用final方法进行这些优化了。   因此,只有在想明确禁止该方法在子类中被覆盖的情况下才将方法设置为final。

1.8K60

Spring复杂的BeanFactory继承体系该如何理解?---下

Spring复杂的BeanFactory继承体系该如何理解?---下 国际化信息支持(I18n MessageSource) Java SE 提供的国际化支持 1. Locale 2....---- 自定义事件发布 Java SE提供了实现自定义事件发布(Custom Event publication)功能的基础类,即java.util.EventObject类和java.util.EventListener...java.util.EventListener,然后针对不同的事件发布时机提供相应的处理方法定义,最主要的就是,这些处理方法所接受的参数就是MethodExecutionEvent类型的事件。...有了事件监听器接口定义,还必须根据时机需求提供相应的实现,只有接口定义可是干不了什么事情的啊!...ApplicationListener ApplicationContext容器内使用的自定义事件监听器接口定义,继承java.util.EventListener

21310

灵魂拷问Java泛型,extends你为什么继承

问题如下: 看到这个问题,自己第一反应也是很纳闷,为什么调用apply的时候,T指定了Double,S传入Integer为什么还不报错了,自己还特地去运行了一下,居然能正常运行。...类型擦除 据说在很久很久以前,JAVA混沌未开,jdk1.5这个老大哥还没有拥有泛型,后来的1.6/7/8三个弟弟有了泛型,但是为了和大哥一样,兄弟三人决定,代码中泛型你写任你写,编译的时候我就悄悄的去掉...extends T> void apply(T t, S s){ System.out.println(t); System.out.println(s); } 这段代码字节码如下: 4...但是为什么都是Object类型呢,S不是继承了T么?类型擦除的角度来说,编译的时候T和S都会被擦除掉,但是S是T的子类型这一点是肯定的。...S extends T> void apply(T t, S s){ System.out.println(t); System.out.println(s); } 字节码如下: 4

32910

为什么Java 程序员必须掌握 Spring Boot ?

Spring Boot 使测试变得更简单 Spring Boot 对测试的支持不可谓不强大,Spring Boot 内置了7种强大的测试框架: JUnit: 一个Java 语言的单元测试框架 Spring...Test & Spring Boot Test:为 Spring Boot 应用提供集成测试和工具支持 AssertJ:支持流式断言的 Java 测试框架 Hamcrest:一个匹配器库 Mockito...:一个 java mock 框架 JSONassert:一个针对 JSON 的断言库 JsonPath:JSON XPath 库 我们只需要在项目中引入 spring-boot-start-test 依赖包...Jenkins 可以通过本机系统包 Docker 安装,甚至可以通过安装 Java Runtime Environment 的任何机器独立运行。...使用 Jenkins 部署 Spring Boot 项目非常简单,只需要前期做一些简单的配置,当我们需要发布项目时只需要点击项目对应的发布按钮,就可以将项目版本库中拉取、打包、发布到目标服务器中,大大简化了运维后期的部署工作

40920

Java入门到失业》第五章:继承与多态(5.1-5.7):继承

5.继承与多态 5.1为什么继承        最近我儿子迷上了一款吃鸡游戏《香肠派对》,无奈给他买了许多玩具枪,我数了下,有一把狙击枪AWM,一把步枪AK47,一把重机枪加特林(Gatling)。...Java提供了继承来解决这个问题。...由一个公共超类派生出来的所有类的集合称为继承层次,在继承层次中,某个类到其祖先的路径称为该类的继承链。下图演示了Object类在本示例的部分继承层次: ?       ...在Java中是不支持多继承的,也就是说一个类只能继承自一个类,不过可以通过接口变相的多继承,关于接口的讨论我们将会在后面进行。...笔者其实更喜欢内存角度看待问题,前面的一些章节也多次内存角度分析问题。前面我们看到,实例化一个子类的时候,必须要先实例化超类。

55320

Java入门到精通五(Java面向对象下,封装,继承,多态)

Java入门到精通(Java面向对象下,封装,继承,多态) 一:封装(Encapsulation) 1:封装的概念 2:封装实现的过程 3:外部类通过提供方法访问权限属性 4既然接口都给了,封装还有什么意义...二:继承(inheritance) 1:继承的概念 在程序设计中,面向对象也包含了继承这么一种设计理念。java中实现了类的继承,被继承的类叫做父类,继承的类叫子类。...继承的方式有多种,单继承,多继承,多重继承java是不支持多继承的。也就是说,你一个子类不能继承多个父类,但是多个子类可以继承同一个父类。...必须调用父类的构造函数,如果父类有默认的构造函数,子类实例化会自动调用,如果父类没有声明默认的构造函数的话(无形参构造函数),子类构造函数必须通过super调用父类的构造函数。...(参数个数或者参数的类型) 而重写发生在继承关系,子类对父类的一般方法进行重写,参数列表以及方法名必须一致,然后内部的行为不一样。

21830

spring-boot-2.0.3不一样系列之番外篇 - springboot事件机制,绝对有值得你看的地方

spring的事件机制也是java的事件机制拓展而来,具体往下看   ApplicationEvent:Spring中所有的事件父接口,继承java的EventObject /* * Copyright...,继承java的EventListener /* * Copyright 2002-2016 the original author or authors...permissions and * limitations under the License. */ package org.springframework.context; import java.util.EventListener...* Based on the standard {@code java.util.EventListener} interface * for the Observer design pattern...总结    为什么讲与springboot启动源码无关的内容     关于前言中的疑问:为什么讲一篇与spring启动源码无关的内容,有两个考虑,第一,确实是让大家放松下心态,读源码确实挺累的;第二,主要目的

58810

Spring Boot 2.x 启动全过程源码分析(上)入口类剖析

Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boot 为什么这么简便的奥秘。...本篇基于 Spring Boot 2.0.3 版本进行分析,阅读本文需要有一些 Java 和 Spring 框架基础,如果还不知道 Spring Boot 是什么,建议先看下我们的 Spring Boot...* @param event the event to respond to */ void onApplicationEvent(E event);} 看源码,这个接口继承了...JDK 的 java.util.EventListener 接口,实现了观察者模式,它一般用来定义感兴趣的事件类型,事件类型限定于 ApplicationEvent 的子类,这同样继承了 JDK 的 java.util.EventObject...设置监听器和设置初始化器调用的方法是一样的,只是传入的类型不一样,设置监听器的接口类型为: getSpringFactoriesInstances,对应的 spring-boot-autoconfigure

61500

Spring Boot 2.x 启动全过程源码分析(上)入口类剖析

Java技术栈 www.javastack.cn 优秀的Java技术公众号 Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boot...为什么这么简便的奥秘。...* @param event the event to respond to */ void onApplicationEvent(E event);} 看源码,这个接口继承了...JDK 的 java.util.EventListener 接口,实现了观察者模式,它一般用来定义感兴趣的事件类型,事件类型限定于 ApplicationEvent 的子类,这同样继承了 JDK 的 java.util.EventObject...设置监听器和设置初始化器调用的方法是一样的,只是传入的类型不一样,设置监听器的接口类型为:getSpringFactoriesInstances,对应的 spring-boot-autoconfigure

34330

关于JAVA必须知道的那些事(三):继承和访问修饰符

特别注意:在java中只能继承一个父类(也就是单继承),而且子类可以访问父类的非私有成员。这个和Python不一样,Python的继承可就灵活了。...我们可以使用super(参数)这种形式来调用父类允许被访问的其他构造方法,但是此时super()必须放在子类构造方法有效代码的第一行(必须是子类的构造方法(其他方法不行)的第一行(其他行不行))。...如果某个局部变量被final修饰,那么我们可以不用在声明的同时立马进行赋值,但是必须在使用之前进行赋值,一旦赋值就不能被修改; (方法内的局部变量的作用范围,该行开始到所在大括号结束;而类的成员变量的作用范围取决于它前面的访问修饰符...具体的研究可以参看这里:详解java中的四种代码块。...源码注解:只在源码.java文件中存在,编译成.class字节码文件就不存在了; 编译时注解:在源码.java文件和字节码.class文件中都存在; 运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解

98630
领券