问题标签 [marker-interfaces]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
63 浏览

java - JAVA - 为什么注释比标记界面更好?

我已经读过,由于引入了注释,开发人员更喜欢在标记界面上使用它们,为什么?

0 投票
2 回答
796 浏览

spring - 我想加载一个基于标志的特定类,而不是加载两个类并使用 Springs 中所需的一个

在配置中,我有一个标志 isFlagEnabled。

所以我必须从 spring config 中读取标志,并基于它来执行特定的 class A 或 B 。这意味着我只想在 isFlagEnabled 为 true 时加载 A 类,类似地,仅在 isFlagEnabled 为 false 时加载 B 类。

我已经编写了以下代码,但是在摄取时我被卡住了。

context.xml 文件

所以现在我不知道如何根据配置标志注入特定对象。我想通过 Lazy-init 来实现,以便在不需要时不会加载其他对象。我非常感谢这些建议。

0 投票
3 回答
2833 浏览

java - 标记接口与空抽象类

我在使用标记接口或空抽象类之间做出决定时遇到了困难。

我有两个类BrokerResponseNotification,它们没有结构相似性。唯一连接它们的是需要订阅。

我不知何故不喜欢使用 a Marker Interface,因为它违反了 a 的基本定义Interface。另一方面,使用一个abstract super类会让我感到不舒服,因为这两个类之间没有任何关系。

在这种情况下,通常首选的方法是什么?为什么?

编辑 1

我忘了说,那BrokerResponse是一个抽象类本身,它有几个子类来确定各自的类型。

0 投票
2 回答
530 浏览

java - 实现 Cloneable 接口如何允许克隆对象,因为它是一个标记接口并且没有任何方法?

我有一个要克隆其对象的类。我通过实现 Cloneable 接口并覆盖 clone 方法来做到这一点。但是,如果我正在创建一个克隆方法,而没有实现 Cloneable 接口,则会引发异常。这个标记接口(可克隆)为我的班级提供了什么超能力?

0 投票
1 回答
453 浏览

java - Java中的自定义标记接口

由于 Serializable 和 Cloneable 是标记接口(没有任何方法的接口),所以如果我们创建自己的标记接口,那么这两者之间会有什么区别。

0 投票
3 回答
1168 浏览

java - 我们如何/为什么说 java 8 中的功能接口是标记接口

在最近的一次采访中,我被问到“我们怎么能说在 java8 中的功能接口类似于标记接口”。

我无法回答这个问题。

但我认为标记甚至没有任何方法,而功能接口必须有一种方法可以被覆盖。

有人可以帮助我理解这在某些情况下是否是一个有效的论点,还是问题本身是错误的?

0 投票
4 回答
188 浏览

design-patterns - 标记接口有什么好处?

标记界面的想法或目的对我来说完全没有意义。

在 Java 中搜索“Serializable Class”时,我不可避免地想到了“Marker Interface”这个概念。我理解为什么以及何时使用它 - 标记/标记它用于特殊用途的类,例如序列化。

但这里最重要的一点是,原因本身,我的意思是标记类以表明我们将使用它进行某些用途但没有任何方法的想法,对我来说似乎是一派胡言。

如果我们想赋予一个类一些特殊的含义,以便它可以执行我们想要的工作,我坚信它应该包含为这些工作编写的方法。如果它里面什么都没有,那它和普通类有什么不同呢?我什至可以将“实现可序列化”放到任何不打算序列化的类中。

总结一下——标记界面有什么好处?

0 投票
4 回答
889 浏览

java - java中标记接口的意义何在?为什么没有它们我们就不能继续?

我已经阅读了有关标记接口的内容,并且对如何在代码中使用它们有了一些了解,但是我不明白为什么我们需要它们以及引入这个概念的原因是什么。

我在互联网上搜索,所有答案都类似于“它们向 JVM 提供了一些基本信息,以便 JVM 可以执行一些有用的操作”,但问题是为什么 JVM 需要知道这一点以及 JVM 有哪些可能的操作必须执行?为什么我不能只克隆对象而不从 Clonable 扩展类?为什么我不能序列化类对象而不从 Serializable 扩展它?

标记界面没有多大意义,在我看来显然不是一个好的设计。没有任何方法的接口???重点是什么?

现在显然这里要使用注释而不是标记接口,但问题仍然是为什么 JVM 需要知道?

0 投票
2 回答
539 浏览

c# - 继承一个空的接口可以吗?

我有这个通用方法:

TEntity是我的数据模型对象(我的意思是数据库表的模型),可以是任何类型(如汽车、人类、鲜花等),但它们都具有ID属性。TEntity实现IEntity接口。IEntity是一个空接口,也可以是一个只有ID如下实现的接口:

或者

TBiz 是我实现INewSend. INewSend是一个简单的接口,有 2 个实现:

这段代码工作正常,但我很好奇,就面向对象的原则而言,TEntity类继承为IEntity的接口可以吗?我这样做是为了将不同的类(所有这些类都继承接口)传递给方法。该接口也可以是具有属性的接口,但我认为它不会改变问题,因为实现此接口的实体具有完全不同的类型,尽管它们都具有该属性。IEntitySendIEntityIDID

0 投票
0 回答
44 浏览

java - Why can't we use clone method by using approch 1(given below) instead of approch 2 and what's need of marker interface? Why jvm handle clone method?

approach 2

approch 1