标签: interface

C++中的接口与实现.这是什么意思?

我正在学习继承的概念,特别是有关访问说明符的概念,在这里我对protected访问说明符感到困惑.受保护的成员可以通过基类成员函数和派生类成员函数访问.implementation如果我们声明protected作为访问说明符,则有可能搞乱基类.最好将数据成员声明private而不是保护,因为只有interface暴露而不是implementation部分.我们只声明一个类的私有部分中的变量以及它是如何变成的implementation?实施将在member functions右边进行吗?条款令人困惑,任何人都可以澄清并解释我的条款吗?

c++ inheritance interface protected

-3
推荐指数
1
解决办法
5612
查看次数

我怎样才能让java接口返回非基本类型的对象?

java接口方法只能返回原始类型(int,string等?)

我想让一个方法返回一个类型"BitMap".但我的IDE抱怨无法解析符号"BitMap":

public interface MyContract {
    public BitMap getBitMap();
    ....
Run Code Online (Sandbox Code Playgroud)

我怀疑我误解了界面固有的东西阻止我这样做?

java oop android interface

-3
推荐指数
1
解决办法
348
查看次数

c#7当使用泛型用于方法参数时我得到方法的类型参数'U'的约束必须匹配接口的约束

我正在尝试创建一个接口和一个具体的实现,其中Interface是泛型类型,其中一个方法有一个泛型参数.

我想保留GetPagedList方法参数resourceParams,这样我就可以为接口的不同实现传递不同的resourceParams对象.

使用下面显示的代码时,我收到错误;

方法'ShippingServicesRepository.GetPagedList(U)'的类型参数'U'的约束必须与接口方法IBaseRepository.GetPagedList(U)的类型参数'U'的约束匹配.请考虑使用显式接口实现

这是我的界面;

public interface IBaseRepository<T> 
{
    bool Save();
    bool Exists(int recordId);
    bool MarkForDeletion(int recordId);
    PagedList<T> GetPagedList<U>(U resourceParams) where U : class;
    T Get(int id);
    void Add(T record);
    void Update(T record);
}
Run Code Online (Sandbox Code Playgroud)

这是我的实施;

public class ShippingServicesRepository<T> : IBaseRepository<T> 
{

    //                      /--- GetPagedList is what is throwing the error
    //                      |
    public PagedList<T> GetPagedList<U> (U resourceParams) where U : ShippingServicesResourceParameters
    {
        try
        {

            var collectionBeforePaging =
                _manifestContext.ShippingServices
                .ApplySort(resourceParams.OrderBy, _propertyMappingService.GetPropertyMapping<ShippingServicesDto, ShippingServices>());
            if (!string.IsNullOrEmpty(resourceParams.SearchQuery))
            {
                var searchQueryForWhereClause = resourceParams.SearchQuery.Trim().ToLowerInvariant();
                collectionBeforePaging = …
Run Code Online (Sandbox Code Playgroud)

c# generics interface .net-core asp.net-core-mvc-2.0

-3
推荐指数
1
解决办法
563
查看次数

什么是更惯用的去?

我正在设计一个界面并想知道,更惯用的方式是什么:

func GetUser(id string) (*User, error)
Run Code Online (Sandbox Code Playgroud)

要么

func GetUser(id string, u *User) error
Run Code Online (Sandbox Code Playgroud)

interface go

-3
推荐指数
1
解决办法
52
查看次数

在泛型抽象类中实现泛型接口

界面-

interface Service<T>
{
    void foo(T t);
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个实现接口的抽象Service。我不想提供Tie generic的实现。我将在抽象类的另一个子类中进行。
我应该如何声明一个带有泛型的抽象类?

abstract class AbstractService implements Service<T>
Run Code Online (Sandbox Code Playgroud)

用java不酷。

java inheritance interface abstract

-3
推荐指数
1
解决办法
99
查看次数

为什么 Go 中的错误可以为 null?

Go 中的错误可能为零。编译如下:

   var err error
   err = nil 
   err = errors.New("hello")
Run Code Online (Sandbox Code Playgroud)

然而错误是值,并且值类型在 Go 中不可为空。

看了一下error,是一个普通的界面:

type error interface {
    Error() string
}
Run Code Online (Sandbox Code Playgroud)

由该结构体实现:

type errorString struct {
    s string
}
Run Code Online (Sandbox Code Playgroud)

这里没有指点。有一种方法需要一个指针接收器,

func (e *errorString) Error() string {
    return e.s
}
Run Code Online (Sandbox Code Playgroud)

但这并不能解释为什么它error表现为指针而不是值。

errors.New()确实返回一个指针,

func New(text string) error {
    return &errorString{text}
}
Run Code Online (Sandbox Code Playgroud)

这使得我上面的第三行代码更加令人费解——我们将 的结果分配New给一个值变量。

这是如何运作的?

error-handling null interface go

-3
推荐指数
1
解决办法
473
查看次数

如何使用接口填充切片?

我知道我可以用字符串填充 Go 切片strings := []string{"something", "something else"},但是除了接口之外我怎么能做同样的事情呢?我尝试了以下方法:

data := []interface{}{{ID: "123"}, {ID: "456"}}
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

missing type in composite literal
Run Code Online (Sandbox Code Playgroud)

我也尝试使用这样的结构:

type Users struct {
    ID string
}

[]Users{{ID: "123"}, {ID: "456"}}
Run Code Online (Sandbox Code Playgroud)

哪个有效,但是mongoInsertMany函数需要一个[]interface{}参数:

cannot use users (type []Users) as type []interface {} in argument to database.InsertMany
Run Code Online (Sandbox Code Playgroud)

我如何定义和填充一个[]interface{}

interface go slice

-3
推荐指数
1
解决办法
121
查看次数

如何实现两个具有相同名称和不同返回类型的方法?

我想知道是否可以实现这样的代码?

public interface A {
public void execute();
}

public interface B { 
    public String execute(); 
}

class C implements A, B {
}
Run Code Online (Sandbox Code Playgroud)

java return interface

-4
推荐指数
1
解决办法
572
查看次数

在Java中重载接口方法

我有以下代码:

public interface Block {
    public double[] getOutput();
    public double[] getOutput(double[] inputs);
}

public class Dataset implements Block{

    public double[] getOutput(){
        return(new double[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用netbeans IDE,它会产生以下消息:

Dataset is not abstract and does not override abstract method getOutput(double[]) in Block
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会发生这种情况..任何帮助将不胜感激

谢谢

java overloading interface

-4
推荐指数
1
解决办法
1717
查看次数

Java - 接口不允许 ArrayList 正常运行

我正在尝试实现一个名为 board 的接口,Board但是每当我尝试向其中创建的 ArrayList 添加任何内容时,它都会抛出

- Syntax error on token(s), misplaced construct(s) - Syntax error on token "Tile1", VariableDeclaratorId expected after this token

这是完整的代码:

import java.util.ArrayList;


public interface BoardTest {
    public ArrayList<Land> lands = new ArrayList<Land>();

    Land Tile1 = new Land(0,1,0,0,0, "Tile 1");
    lands.add(Tile1);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

java interface arraylist

-4
推荐指数
1
解决办法
198
查看次数