有没有办法摆脱我得到的这个空指针异常?

时间:2014-11-18 13:19:58

标签: java exception error-handling tooltip

以下代码显示空指针异常

private void _settooltip() {
    localXYLineAndShapeRenderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
        @Override
        public String generateToolTip(XYDataset dataset, int series, int item) {
                //String toolTip = getToolTipText();
                   // return toolTip;
            CurveSegment segment = (CurveSegment) curveEncapsulator.getSegment(currentCurve);
            if (segment != null) {
                segment.getA();
                segment.getB();
                segment.getC();
            }


            double A = segment.getA();
            double B = segment.getB();
            double C = segment.getC();


            String AA = String.valueOf(A);
            String BB = String.valueOf(B);
            String CC = String.valueOf(C);


            return "A = " + AA + " B = " + BB + " C = " + CC;



        }
    });
}

我在

上遇到异常

public String generateToolTip(XYDataset dataset,int series,int item)

有谁能告诉我如何处理这个空指针异常?

3 个答案:

答案 0 :(得分:0)

我可以猜测localXYLineAndShapeRenderer为空。请向我们展示一个初始化此变量的代码(如果存在)。

答案 1 :(得分:0)

基于此:

        CurveSegment segment = (CurveSegment) curveEncapsulator.getSegment(currentCurve);
        if (segment != null) {
            segment.getA();
            segment.getB();
            segment.getC();
        }

您希望segment有时为空。

但是,你仍称这些:

        double A = segment.getA();
        double B = segment.getB();
        double C = segment.getC();

不检查segment是否为空。

实际上,if语句中的代码没有意义,因为对方法调用的返回值没有任何作用。

答案 2 :(得分:0)

此错误可以是“段”,您可以尝试这样的;

        double A = 0;
        double B =  0;
        double C =  0;

        String AA =  "";
        String BB =  "";
        String CC =  "";

        if (segment != null) {
            A = segment.getA();
            B = segment.getB();
            C = segment.getC();

            AA = String.valueOf(A);
            BB = String.valueOf(B);
            CC = String.valueOf(C);
        }

如果你分享stck trace,我们可以提供更好的帮助。