如何调用有参数的抽象类覆盖方法

我有一个接口:如何调用有参数的抽象类覆盖方法

​​

然后:

public abstract class AbstractICustomObjectListingViews implements ICustomObjectListingViews { 

@Override

public View createCustomObjectListingView(MyDBObject myDBObject) {

return null;

}

}

我再尝试通过扩展抽象类来实现接口:

public class MyCustomObjectListingView extends AbstractICustomObjectListingViews { 

@Override

public VIew createCustomObjectListingView(MyDBObject myDBObject) {

Log.v("MyApp", ">>>> " + myDBObject.get_myObjectDescription());

TextView textView = new TextView(mContext);

textView.setText(myDBObject.get_myObjectDescription());

return textView;

}

}

我使用MyObject来映射我的数据库结果:

public class MyDBObject { 

public MyDBObject() {

}

private String _myObjectDescription;

public void set_myObjectDescription(String _myObjectDescription) {

this._myObjectDescription = _myObjectDescription;

}

public String get_myObjectDescription() {

return _myObjectDescription;

}

}

但是,只要我尝试调用MyCustomObjectListingViewcreateCustomObjectListingView(MyDBObject myDBObject)的实现,我就会得到一个空指针。

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String MyDBObject.get_myObjectDescription()' on a null object reference 

在:

Log.v("MyApp", ">>>> " + myDBObject.get_myObjectDescription()); 

这是我怎么称呼它:

MyDBObject myObject = new MyObject(); 

myObject.set_myObjectDescription("HELLO WORLD");

ICustomObjectListingViews iCustomObjectListingViews = new MyCustomObjectListingView();

iCustomObjectListingViews.createCustomObjectListingView(myObject);

什么我收到错了吗?我应该如何调用覆盖类的overriden方法?我怎样才能使上述尝试工作?

谢谢大家提前。

回答:

如果你不知道如何实现createCustomObjectListingView(MyDBObject myDBObject)AbstractICustomObjectListingViews,让具体类MyCustomObjectListingView(这样你可以避免null收益)直接实现它。

AbstractICustomObjectListingViews删除的方法,使其看起来像

public abstract class AbstractICustomObjectListingViews implements ICustomObjectListingViews { 

//other methods

}

,并留下MyCustomObjectListingView,因为它是。

以上是 如何调用有参数的抽象类覆盖方法 的全部内容, 来源链接: utcz.com/qa/259946.html

回到顶部