标签: interface

为什么我的数组会出现NullPointerException?

我无法弄清楚为什么我得到一个NullPointerException.我在这里错过了什么?

public class CustomJourneyUserInformation {
    public IJourneyDetails journeyDetails;
    public IUserDetails userDetails;
    public ISubscribeJourney subscribedToJourneys;
}
Run Code Online (Sandbox Code Playgroud)

IJourneyDetails,IUserDetails,ISubscribeJourney都是接口

在一个不同的活动中,我正在打电话

private CustomJourneyUserInformation[] allJourneyDetails;
    allJourneyDetails = new CustomJourneyUserInformation[subscribedToJourneys.length];
    if (providerDetails[i] != null)
>>> allJourneyDetails[i].journeyDetails = providerDetails[i];
    if (userDetails[i] != null)
    allJourneyDetails[i].userDetails = userDetails[i];
    if (subscribedToJourneys[i] != null)
        allJourneyDetails[i].subscribedToJourneys = subscribedToJourneys[i];
Run Code Online (Sandbox Code Playgroud)

我在由>>>>标记的行中得到一个空指针异常

我相信allJourneyDetails[i]在这里是空的.

java interface nullpointerexception

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

在抽象基类上声明接口

我目前正在实现Quartz计时器,以允许调度某些数据文件.我有一个抽象DataOutput类,然后实现覆盖不同类型的输出(http,文件等).我已经在两个特化项上实现了接口,但是当我尝试在抽象基础上声明它以创建DataOutput类型的对象时,我遇到了编译错误,所以我可以在运行时处理这些.

这可能吗?

c# polymorphism interface abstract

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

Objective C NSMutable Array无法添加项目

请看一下我的代码.我试图将一些Car对象添加到MutableArray*parkPlace(属性属于Park类)

我期待的结果应如下所示:

CarParkSim[2662:303] Parking: Car Number:1 At:3 o'clok Position:0
CarParkSim[2662:303] Parking: Car Number:2 At:4 o'clok Position:1
CarParkSim[2662:303] Parking: Car Number:3 At:5 o'clok Position:2
Run Code Online (Sandbox Code Playgroud)

但是,我得到的实际结果是这样的:

2012-12-22 12:13:46.085 CarParkSim[2662:303] Parking: Car Number:1 At:3 o'clok Position:0
2012-12-22 12:13:46.087 CarParkSim[2662:303] Parking: Car Number:2 At:4 o'clok Position:0
2012-12-22 12:13:46.088 CarParkSim[2662:303] Parking: Car Number:3 At:5 o'clok Position:0
Run Code Online (Sandbox Code Playgroud)

我确实检查了NSmutablearray,它是空的......似乎把任何东西都推到了堆栈......任何建议?谢谢

无论如何,这里是代码:Park类:

#import <Foundation/Foundation.h>
#import "Stack.h"
#import "Car.h"

@interface Park : NSObject
@property(strong,nonatomic)NSMutableArray *parkPlace;
@property(strong,nonatomic)Car *car;
-(void)carMoveIntoPark:(Car *)car;
@end

#import "Park.h"
@implementation Park

-(void)carMoveIntoPark:(Car *)car
{

if ([self.parkPlace count] …
Run Code Online (Sandbox Code Playgroud)

stack interface object objective-c nsmutablearray

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

用C++实现接口?

我想实现我在C++项目中的引擎(Unity3D)中看到的行为.

以下代码使用C#(Unity的语言):

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {

    void Update() {
        //Update is called every frame
    }
}
Run Code Online (Sandbox Code Playgroud)

由于我无法访问MonoBehavior源,因此我只能猜测Update()是一个可以像这样实现的虚函数.

我想在C++中复制相同的行为.有一个循环,main()一个超级对象将Update()在该循环中调用它的方法,它的所有孩子应该继承这个超级对象,并有可能实现Update()和使用它.

我知道这是一个含糊不清的问题,但我到处寻找答案而没有找到答案.

这是一个例子:

class Base
{
 public:
     virtual void Update();
};

class Object: public Base
{
 public:
     void Update();
};

void main()
{
     Base* base;
     while(1)
     {
        base->Update();
     }
}
Run Code Online (Sandbox Code Playgroud)

结果应该是Object的Update()应该通过Base调用.我100%上面的代码不起作用,这就是为什么我需要一些想法.

c# c++ polymorphism inheritance interface

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

如何在Eclipse中找到方法的接口

我有一个实现数字接口的类.部分内容如下:

class Z implements A, B, C, ... {
  @override
  public void foo( Bar b ) {
      ...
  }
Run Code Online (Sandbox Code Playgroud)

有没有办法,最好是快捷方式,问问Eclipse该方法的界面foo是什么?

(注意:使用Eclipse版Juno)

java eclipse overriding interface

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

使用接口实现时的"不可转换类型"

在尝试将接口的实现强制转换为接口时,我遇到了意外错误("无法转换的类型").

我给了以下界面

public interface IAbc {...}
Run Code Online (Sandbox Code Playgroud)

和另一个类中的以下方法

public class SomeClass {
    public doSomething(Iterable<IAbc> abcs) {...}
}
Run Code Online (Sandbox Code Playgroud)

我写了下面的课

public class MyAbc implements IAbc {...}
Run Code Online (Sandbox Code Playgroud)

我在其他地方有这样的方法

public class MyClass {
    public Iterable<MyAbc> getMyAbcs() {...}
}
Run Code Online (Sandbox Code Playgroud)

我希望我可以很好地链接这些,如下所示:

public void doSomethingWithThings(SomeClass sc, MyClass mc) {
    sc.doSomething(mc.getMyAbcs());
}
Run Code Online (Sandbox Code Playgroud)

但是NetBeans给了我以下错误:

错误:
sc.doSomething(mc.getMyAbcs());
需要不可转换的类型:Iterable
found:Iterable

我尝试过施法,但Iterable<IAbc> abc = (Iterable<IAbc>)mc.getMyAbcs();会导致同样的错误.

如何将接口的Iterable实现传递给期望接口的Iterable的方法?

java interface

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

调用新的Asynctask时定义onPostExecute

我创建了一个扩展类Asynctask.从多个活动中调用此类.它从网页获取一些数据.之后,根据url,数据将在onPostExecute方法中处理.现在我使用多个else if语句,但它有点不方便.

有没有办法onPostExecute在创建新的Activity的Activity中定义方法Asynctask.

我认为它可能适用于接口或抽象方法,但我不确定,也不知道如何.

java android abstract-class interface

0
推荐指数
2
解决办法
439
查看次数

有没有办法在Java中动态实现接口?

我正在开发一个允许用Lua创建mod的Minecraft mod.我希望用户能够使用他们想要的接口创建TileEntities.目前我使用的是调用已注册Lua文件功能的Base TE,但这不允许他们制作库存和外围设备.

java reflection interface

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

具有相同接口但属性的类型不同的类

我想有这样的设计:

public interface IDifferentTypes
{
}

public class IntegerType : IDifferentTypes
{
    public int value { get; set; }
}

public class StringType : IDifferentTypes
{
    public string value { get; set; }
}

public class DateTimeType : IDifferentTypes
{
    public DateTime value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是在界面中定义了属性"value".

所以我可以这样说:

IDifferentTypes someInt = GetSomeInt(); // GetSomeInt() returns a IntegerType object
Assert.AreEqual(5, someInt.value);

IDifferentTypes someString = GetSomeString(); // GetSomeString() returns a StringType object
Assert.AreEqual("ok", someString.value);
Run Code Online (Sandbox Code Playgroud)

问题是每种实现的值的类型是不同的,处理它的最佳方法是什么?

.net c# types interface

0
推荐指数
2
解决办法
4118
查看次数

我可以在Java类中减少这种重复出现的模式吗?

我有以下界面:

public interface Gravy {

     public List<Giblet> getGiblets();
     public Giblet getGiblet(String id);
     public int getNumGiblets();
     public void addGiblet();
     public void removeGiblet(Giblet giblet);

     public List<Carrot> getCarrots();
     public Carrot getCarrot(String id);
     public int getNumCarrots();
     public void addCarrot();
     public void removeCarrot(Carrot carrot);

     public List<Gravy> getGravies();
     public Gravy getGravy(String id);
     public int getNumGravies();
     public void addGravy();
     public void removeGravy(Gravy gravy);

}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我的作品中有一个重复出现的模式Gravy.甲Gravy对象可以包含内脏,胡萝卜,和其他(较小)肉汁.所有这些都可以添加,删除或查询.

有两点需要注意:

  1. Carrots和Giblets彼此有点共同之处,但两者都与Gravys 有很大不同.

  2. 我可能需要稍后添加更多项目(因此需要重构)...

是否可以减少上面的代码,以便"动词"只写一次?

java refactoring design-patterns interface

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