首页 > 编程语言 >java实现一个什么都没有的接口有什么用呢?

java实现一个什么都没有的接口有什么用呢?

时间:2023-08-16 12:02:54浏览次数:32  
标签:java 标记 什么 接口 MarkerInterface Java 方法 public

在Java中,一个完全没有方法定义的接口被称为标记接口(Marker Interface)。标记接口不包含任何方法,但它们在代码中传达了某种含义或元信息。它们有以下几种主要用途:

  1. 语义约定:通过实现一个特定的标记接口,类可以明确地表示它具有某种特性或行为,即使该接口没有定义任何方法。当你看到一个类实现了某个标记接口,你就会立刻知道这个类所代表的特定含义或约定。
  2. 与其他代码互操作:某些代码可能依赖于对象是否实现了特定的标记接口来决定如何与这些对象互动。例如,Java自带的Serializable接口就是一个标记接口,用来表示一个类的对象可以被序列化。
  3. 后期添加方法:有时,可能会在后期为标记接口添加方法。即使最初是作为一个纯粹的标记,但随着时间的推移,你可能会发现有合理的理由为接口添加方法。
  4. 安全性和策略:在某些情况下,你可能想基于某些策略来限制哪些类可以使用某个功能。标记接口可以作为这样的策略的一部分。例如,你可能只允许实现了某个标记接口的对象被传递给某个方法或构造函数。

示例:

public interface MarkerInterface {
    // 无任何方法定义
}

public class SampleClass implements MarkerInterface {
    // ...类的定义...
}

public class UtilityClass {
    public void doSomethingIfMarkerInterface(Object obj) {
        if (obj instanceof MarkerInterface) {
            // 做一些特定的事情
        }
    }
}

尽管标记接口在某些情境下是有用的,但现代Java开发中的趋势是使用注解(Annotations)来代替它们,因为注解提供了更加灵活和强大的方式来附加元信息到类或方法上。

标签:java,标记,什么,接口,MarkerInterface,Java,方法,public
From: https://blog.51cto.com/u_16170893/7106003

相关文章

  • 为什么 setTimeout 有最小时延 4ms ?为什么是4
     写的超级棒,是我要找的答案,转载原文链接:掘金https://zhuanlan.zhihu.com/p/639441280正文在前端技术圈子里面,对于setTimeout常常有一句结论,“setTimeout的最小设置延迟是4ms”。按照“某乎”的方式,在回答一个问题之前得“先看是不是”,“再看对不对或为什么”。我......
  • 浏览器中输入:“www.learnjava.com”之后都发生了什么?请详细阐述
    当在浏览器中输入"www.woaijava.com"并按下回车后,会依次发生以下步骤:域名解析:浏览器首先会将输入的域名"www.woaijava.com"解析为对应的IP地址。它会查询本地DNS缓存,如果找不到,则会向域名服务器发起请求。DNS查询:如果本地DNS缓存中没有对应的IP地址,浏览器会......
  • 什么是 SAP ABAP Lock Mode 的 cumulative 特性
    SAP官网提到:Ifthename,argument,andlockmodeoftheelementarylockareidentical,andifalockisnotexclusiveandnon-cumulative,itcanbesetmorethanonce(acumulation).Thecumulationcounterisincrementedbyonewitheachsuccessivecumulat......
  • 什么是 Node.js 的 cross-env 工具包
    cross-env是一个运行在Node.js环境中的工具包,它的主要作用是让我们可以在命令行中设置环境变量,而不必担心跨操作系统的兼容问题。在Unix和Windows系统中设置环境变量的方式是不同的,这就导致了我们无法写出一条在所有操作系统中都可以运行的设置环境变量的命令。cross-env......
  • 基于java在线购物内部购买系统的设计与实现
    随着数据库技术和无线互联网的发展,各行业的数据信息量快速增多。正是由于这种发展形势,数据量变得非常杂乱无序,必须通过信息系统来选择用户需要的信息。本文通过Java开发平台研发乐高在线购物网站系统,解决原来销售只能通过实体前台进行商品购买问题。本文系统中使用的设计方法是一......
  • JavaScript面试1
    JavaScript11.有哪些数据类型?根据JavaScript中的变量类型传递方式,分为基本数据类型和引用数据类型两大类七种。基本数据类型包括Undefined、Null、Boolean、Number,String,Symbol(ES6新增)六种。引用数据类型只有Object—种,主要包括对象、数组和函数。Symbol()代表独......
  • 面向制造商的面粉机设备运维管理平台有什么功能
    市场上面粉需求一直很大。为保证面粉生产高效安全,设备制造商往往需要完善设备后端的服务,打造面粉机设备运维管理平台,以实现面粉机的远程监控与运维管理。通过平台帮助制造商更好地管理和监控其面粉机设备的运行状态和维护过程,以确保制造商能够快速、准确地发现问题并采取相应的措施......
  • 什么是 SAP CDS view 的 join on demand 技术
    SAPCDSview里借助pathexpression技术,我们可以实现joinondemand的场景。如下图所示:Joinondemand是SAPCDS(CoreDataServices)视图的一个重要特性,它允许您在CDS视图中实现延迟连接,从而优化查询性能。通过在需要时执行连接操作,而不是在每次查询时都执行连接,可以减......
  • Java自定义注解
    注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。本文将通过示例详解Java如何实现自定义注解,需要的可以参考一下 −目录概念作用JDK中预定义的一些注解注解生成文档案例自定义注解格式本质属......
  • Java介绍
    @目录Java介绍Java的发展Java可以做什么Java介绍Java的发展詹姆斯·高斯林Java编程语言的共同创始人之一,一般公认他为“Java之父”。90年代初,创立green项目,后来发展一套语言叫做“Oak”,后改名为Java。2009年,SUN公司已经被oracle公司收购Java可以做什么1.开发大型企业级网站......