标签: interface

Java接口和Python Mixin之间的区别?

我已经阅读Python-Mixin并了解到它为类增加了一些功能(方法)。同样,Java-Interfaces还提供类的方法。

我可以看到的唯一区别是它们Java-interfaces是抽象方法并Python-Mixin带有实现。

还有其他区别吗?

python java interface mixins

0
推荐指数
1
解决办法
363
查看次数

WindowsForm应用程序C#中的依赖注入

我目前正在创建Windows窗体应用程序的结构。在实现依赖项注入时遇到了NULL REFERENCE错误。我在MVC应用程序中使用了这种方法来进行简单的单元测试,但无法弄清楚如何在Windows窗体应用程序中实现它。

这是Main表单的部分类:

public partial class pws : Form
{
    private IInterfaceTasks _tasks { get; set; }
    public pws(IInterfaceTasks tasks)
    {
        InitializeComponent();
        _tasks = tasks;
    }

    private void cmdSave_Click(object sender, EventArgs e)
    {

        IEntities.AssignmentEntityRequest request = new IEntities.AssignmentEntityRequest();

        <code mapping here>

        _tasks.CreateAssignments(request); --> _tasks here is null
    }
}
Run Code Online (Sandbox Code Playgroud)

这是继承IServiceTasks接口的类

public class CreateAssignmentsInterface : IInterfaceTasks
{
    private Service.IServiceTasks _task;

    public CreateAssignmentsInterface(Service.IServiceTasks task)
    {
        _task = task;
    }

    public bool CreateAssignments(IEntities.AssignmentEntityRequest request)
    {
        Helpers.Helpers mapper = new Helpers.Helpers();
        var assignmentRequest = …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection interface winforms

0
推荐指数
1
解决办法
5511
查看次数

如何创建可以存储队列或堆栈的变量?

我有一个对象,它有一个我希望能够保存队列或堆栈的变量.任何具有适当逻辑的添加和删除的东西.我认为这可以通过一个接口来完成,但是这两个操作中java.util没有相同的接口或甚至相同的名称.

我现在的计划是创建一个包装器,使它们符合我的要求,但这似乎不够优雅.有没有更好的办法?

我想要的东西:

Something<E> steps;
Run Code Online (Sandbox Code Playgroud)

这样我就可以调用step.pop()和step.push()或任何方法名称,而无需知道步骤是实现队列逻辑还是堆栈逻辑.

java interface

0
推荐指数
1
解决办法
585
查看次数

有两个不同的GitHub分支永远不会合并以分别存储接口和完整的应用程序是一个好主意吗?

对于我的软件工程类,我们必须用Java开发一个按钮引导的应用程序(即按下按钮切换LED).我们必须根据接口定义整体架构,然后在各种场景中实现它:按钮和LED在同一台PC上建模为GUI元素,按钮和LED建模为不在同一台机器上运行的GUI元素(例如远程),Raspberry Pi/Arduino等物理按钮和LED ......

尽管运行环境发生了变化,但接口必须相同,即只有实现必须改变.通过接口我不是指GUI,而是我的应用程序中的类将实现的接口(例如,接口iLed将由类Led实现,其方法代码将根据LED的建模方式而变化:物理LED,本地GUI元素等.).只是为了给你一个想法,在下面的链接中有draw.io接口的UML图(用draw.io打开):https://drive.google.com/file/d/0BxSY8GbXKYeAd0dZNm92ODdOSFE/view ? usp = sharing

我想要的是能够在接口(和驱动程序存根)之间来回切换以及我正在处理的完整应用程序(除了接口之外,还有实现它们的类).构建项目以实现这一目标的最佳方法是什么?拥有一个永远不会合并的两个分支的GitHub仓库是一个好主意,一个只有接口而另一个只有接口,另一个带有实际的实现(即给定执行环境的完整应用程序,接口也是如此)?如果没有,你有什么建议?我问,因为据我所知,你通常会分支添加/修改一些功能,然后与你最初分支的分支合并,这意味着分支将重新组合在一起.

git merge interface github

0
推荐指数
1
解决办法
97
查看次数

为什么我不能返回通用地图?

更新:我问了一个愚蠢的问题,我混合B是A的子类型,然后Map<String, B>是子类型,Map<String, A>这显然是不正确的.

公共接口A {....}

public class B implements A {
    ....
}
Run Code Online (Sandbox Code Playgroud)

现在我有这门课.

Class abstract ABC {
    public abstract Map<String, A> execute();
}


Class XYZ {
    private ABC abc;
    public Map<String, A> doSomeWork(){
       return abc.execute()
    }
}
Run Code Online (Sandbox Code Playgroud)

然后

Class DEF extends ABC {
   @Override 
   public Map<String, B> execute(){
     ....
   }
}

Class Main {

....
     XYZ xyz = new XYZ();
     DEF def = new DEF();
     xyz.setABC(def);

     Map<String, B> map = xyz.doSomeWork(); //incompatible type error here …
Run Code Online (Sandbox Code Playgroud)

java generics interface

0
推荐指数
1
解决办法
66
查看次数

实例化具有默认方法的接口

我遇到了这个问题:

以下是什么输出?

1  public class A {
2      public static void main(String[] args){
3          I i = new I() {};
4          System.out.println(I.x + i.getValue() + "" + i);
5      }
6  }
7
8  interface I {
9      int x = 10;
10
11     public default int getValue() {
12         return 5;
13     }
14
15     public default String toString() {
16         return "I";
17     }
18 }
Run Code Online (Sandbox Code Playgroud)

我的想法:

我的第一直觉告诉我 - 我是新的我(){}?因此我们无法实例化接口 - 问题1.

然后我认为公共默认String toString()?重写Object类方法?问题听起来不错 - …

java interface object java-8

0
推荐指数
1
解决办法
923
查看次数

为什么List是一个接口而不是一个类

我怀疑是在一个简单的类与方法的实现和接口之间.不是抽象类.为什么我们不能只创建一个List类,给出所有的方法实现,并使Array List或Linked list扩展它.不是方法的实现相同.

java interface list

0
推荐指数
1
解决办法
118
查看次数

如何检查方法参数是否实现多个接口

有没有办法使用约束来检查方法参数是否实现了多个接口?

以这个简单的例子来检查TResponse是否已经实现了IBaseSearchResponse:

public static TResponse Search<TResponse, TRequest>(TRequest args)
    where TResponse : IBaseSearchResponse {}
Run Code Online (Sandbox Code Playgroud)

但我想知道它是否实现了IBaseSearchProps.我曾试图通过以下方式添加约束:

public static TResponse Search<TResponse, TRequest>(TRequest args)
    where TResponse : IBaseSearchArgs where TResponse : IBaseSearchProps {}
Run Code Online (Sandbox Code Playgroud)

但是这会报告已经用于类型TResponse的约束条款:

public static TResponse Search<TResponse, TRequest>(TRequest args)
    where TResponse : (IBaseSearchArgs && IBaseSearchProps) {}
Run Code Online (Sandbox Code Playgroud)

这只是非法语法

如果我的问题准备不充分,在其他地方回答或者如果答案在c#规范中定义,我事先道歉,我至少在这里看一下

c# interface constraints

0
推荐指数
1
解决办法
78
查看次数

Duck输入不会隐式地将类型转换为接口变量

public interface IInterface { }

public class MyClass { }

public static class Program {
    public static void Main() {
        IInterface myVariable = new MyClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望这个代码,因为工作MyClass确实满足IInterface,但我得到一个编译错误:

错误CS0266:无法将类型"MyClass"隐式转换为"IInterface".存在显式转换(您是否错过了演员?)

为什么?

我可以使用哪种解决方法不涉及显式转换?

c# duck-typing interface c#-4.0

0
推荐指数
1
解决办法
97
查看次数

为什么一个类可以实现多个接口但不能继承多个类?

我发现的答案之一是"如果属于两个不同类的两个方法/变量具有相同的名称,则多重继承会导致冲突".但我认为在实现多个接口时也可能存在冲突.例如,考虑一个实现两个具有相同变量名的接口的类(变量可以在接口中定义,并且它们在默认情况下是最终的)在它们内部声明

interface Ainterface {

    public final static int i=10;

}


class InterfaceCheck implements Ainterface {
        public static void main(String[] args) {        
        System.out.println(i);
    }

}
Run Code Online (Sandbox Code Playgroud)

上面的代码完全正常

interface Ainterface {

    public final static int i=10;

}

interface Binterface {

    public static final int i=20;

}

class InterfaceCheck implements Ainterface,Binterface {
        public static void main(String[] args) {        
        System.out.println(i);
    }

}
Run Code Online (Sandbox Code Playgroud)

根据互联网上的消息来源"实现多个接口永远不会导致冲突"但上述代码会产生错误.所以这就是我所说的冲突.

java inheritance interface

0
推荐指数
1
解决办法
1203
查看次数