问题标签 [interface-implementation]

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 投票
1 回答
805 浏览

javascript - addEventListener中传递带有handleEvent属性的对象与传统回调函数的比较

我读了一篇文章(链接),其中解释了第二个参数addEventListener可以是函数或对象实现handleEvent方法。

在这篇文章的But wait there's more部分中,它说使用handleEvent可以避免删除和重新附加事件处理程序。但我想知道这是否比反复“添加”和“删除”更好?在整洁的代码、性能或其他方面?

谢谢你们!

0 投票
1 回答
141 浏览

c# - 实现接口时如何实现不同的可访问性修饰符

我想创建一个具有在派生类中具有不同可访问性修饰符的属性的接口,例如:

但在这种情况下,我得到一个错误:

“Prisoner”没有实现接口成员“IPrisoner.PrisonerName.set”。'Prisoner.PrisonerName.set' 不是公开的。

如何实施?

0 投票
3 回答
804 浏览

java - 如何知道哪个bean被注入接口?

所以我有一组包,它们是我用于扩展应用程序的基本代码。我的应用程序实现了一系列接口,然后在运行时由 spring 注入(按照配置)。我想知道是否有一种方法可以知道注入了哪个实现接口的类。我需要这个,因为我有想要执行的 JSON 序列化器/反序列化器操作,但为此我需要知道注入的类。

我有一个描述接线的 java 配置文件,它将与游戏实现一起提供。但到目前为止,我还没有得到实现接口的具体类。我也没有成功从上下文中请求该信息。

蚂蚁提示?

0 投票
0 回答
39 浏览

java - 静态接口方法:我哪里出错了?

注意:我将提供一些代码以及伪代码。如果这还没有足够的信息让我现在可以链接完整的代码。

我正在尝试创建一种在玩家咒语时触发的事件(完全披露:我正在为 Minecraft 编写此代码)。我的计划是制作一个拼写接口,然后让每个拼写都实现该接口。法术可能是 LeapSpell HealSpell 和 RunAwaySpell 之类的东西。

Spell(由于样式原因实际上并不称为 spell)界面相当简单:

随着我对法术实用程序的深入了解,我将添加更多方法,但现在可以施放的能力,以及返回法术法力消耗的能力已经足够了。

但是,当我尝试使用该咒语时,问题开始堆积起来。

在处理事件的类中(我如何让这行代码触发已被省略,因为它不相关)我这样写:

LeapFlashpaper 类是扩展原始 Flashpaper 界面的“咒语”之一。问题是现在eclipse抱怨说该方法应该设为静态。

将方法更改为静态会破坏接口,因为尽管运行 java8 eclipse 将不允许接口内的静态方法。

我误解了接口吗?这是我第一次使用它,我认为这是一个使用它的好机会。每次我造一个新法术,基本的方法都会有。这是我确保每个新法术都有正确方法的方法。

所以我再次问:我在这里误解了什么吗?我是否试图将接口用于它们不应该用于的东西......或者......是的,我的问题是什么?

请发表您喜欢的任何评论,因为我有点迷茫我是否在做一些真正愚蠢的事情......

0 投票
1 回答
134 浏览

java - 将接口的返回值限制在实现类的范围内

我正在编写一个小型库,其中有一些interface提供返回值应在指定范围内的方法。如何明确禁止实现此方法的库用户返回不在此范围内的值?

像这样的东西:

我想我可以写一些类似的东西

并返回 this 而不是 thedouble但这感觉不够好,因为它是一个double介于 0 和 10 之间的你想要使用的,而不是DoubleBetweenZeroAndTen.

如果无法明确禁止,那么确保用户不会违反它的最佳方法是什么?(现在,我在 javadoc 中有一个通知。)

0 投票
3 回答
1187 浏览

java - 为什么接口方法在实现接口的类中不能是静态的?

假设我有这样的代码:

为什么static doSomething()方法显示错误“方法不会覆盖其超类中的方法”?

0 投票
2 回答
237 浏览

c# - 为什么它可以覆盖显式实现?

当直接从实现类访问接口成员不正确时,我们通常显式实现接口。天气它必须是内部的,否则会导致与 API 设计的冲突,或者当它增加滥用方法的机会时。

在我看来,绝对不鼓励为具有不同逻辑的多个接口单独实现成员,所以这里不是这种情况

编译器不允许将此类实现设为虚拟,因为它没有意义,我认为这是正确的。通常显式实现非常敏感,这就是您尝试隐藏它的原因。

但是我发现了以下覆盖显式实现的方式(它不是完全覆盖,而是它的作弊替代方案)

我发现这令人惊讶且非常失望。我的问题是为什么允许以下代码并且可以完美运行?我希望得到接口已经明确实现的错误。

这只是重现问题的基本示例

0 投票
1 回答
2180 浏览

c# - .ToList() in MVC api Core 2

maybe this asked before, but don't get a good answer. I create a mvc API in mvc Core 2 then implement my interface, in Get all Method when I want get list of All Customers get this error, in below show my code:

'Customer' does not contain a definition for 'ToList' and no extension method 'ToList' accepting a first argument of type 'Customer' could be found (are you missing a using directive or an assembly reference?)

UPDATE AFTER COMMENT: Customer is as class for code first in another project in the same solution,

UPDATE TWO: the first think was my mistake for use Customer without DbSet :) but when use it get this error:

The type 'IQueryable<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
I open myproject.API.csproj and these are my dependency

0 投票
2 回答
1969 浏览

c# - C# Diamond-继承(接口实现)

如果一个类从两个单独的接口实现一个接口,它的行为是否与它只实现一次一样?

例子:

上面,从两者和通过FullBear实现。这是否会引入有关 IAnimal 实现的任何奇怪行为,因为两者没有提供有关实现的任何信息(因为语言不允许这样做)。IAnimalIFullAnimalIBearIFullBearIFullAnimalIBearIAnimal

0 投票
2 回答
966 浏览

java - 在 Java 中调用接口的特定实现类

我正在尝试构建一个简单的 API,其中我有一个接口AnimalService,它的实现类是LionImpl, TigerImpl, ElephantImpl.
AnimalService有方法getHome()
我有一个属性文件,其中包含我正在使用的动物类型,

因此,根据我使用的动物类型,当我调用我的 API(getHome()from )时,应该执行AnimalService特定的实现类的方法。 我怎样才能做到这一点? 提前致谢。getHome()