List BlackBerry对象列表字段

List BlackBerry对象列表字段,list,blackberry,nullpointerexception,List,Blackberry,Nullpointerexception,我正在JDE4.6.1下开发一个BlackBerry项目。问题在于,在向列表添加项时,会从measureListRow方法引发NullPointerException NPE调用堆栈: CustomerListField(ObjectListField).measureListRow(ListField, int, int) CustomerListField(ListField).layout(int, int) CustomerListField(ObjectListField).layou

我正在JDE4.6.1下开发一个BlackBerry项目。问题在于,在向列表添加项时,会从measureListRow方法引发NullPointerException

NPE调用堆栈:

CustomerListField(ObjectListField).measureListRow(ListField, int, int) CustomerListField(ListField).layout(int, int) CustomerListField(ObjectListField).layout(int, int) VList(Manager).layoutChild(Field, int, int)
如果您在measureRowList中得到一个NullPointerException,那么我首先要查看该方法的源,以查看要取消引用的null值。看起来您没有包含该方法的源代码。

此方法是核心平台的本机方法。没有看到它的实施。
public class CustomerListField extends ObjectListField implements   ListFieldCallback, ChangeListener {

    private PagedDataFetcher dataFetcher = new CustomerListPagedDataFetcher();

    …

    public CustomerListField() {
        try {
            super.set(new Object[db_.getDataAccess().getListCount()]);
        } catch (Throwable e) {
        }
    }

    public void drawListRow(ListField listField, Graphics g, int index, int y,
                            int width) {
        CustomerListItem currentRow = (CustomerListItem) get(listField, index);
        …
    }

    public Object get(ListField list, int index) {
        try {
           return dataFetcher.getRowAtIndex(index);
        } catch (Throwable e) {
           return null;
        }
    }

// To obtain the data
public class CustomerListPagedDataFetcher extends PagedDataFetcher {
    protected Vector get(int from, int to) throws Exception {
        return DataAccess.getDataAccess().getLists(from, to);
    }
}


/**
 * layout for list
 */
final class VList extends VerticalFieldManager {
    private final ObjectListField list;
    int maxHeight = Display.getHeight() - getFont().getHeight() * 2 - 5; 

    VList(ObjectListField list) {
        super(Manager.VERTICAL_SCROLLBAR | Manager.VERTICAL_SCROLL);
        this.list = list;
    }

    public int getPreferredHeight() {
        return 45 * list.getSize();
    }

    protected void sublayout(int width, int height) {
        super.sublayout(width, height);
        setExtent(width, maxHeight);
    }
}