Java 有没有办法摆脱我正在获取的这个空指针异常?

Java 有没有办法摆脱我正在获取的这个空指针异常?,java,exception,error-handling,tooltip,Java,Exception,Error Handling,Tooltip,以下代码显示空指针异常 private void _settooltip() { localXYLineAndShapeRenderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { //String to

以下代码显示空指针异常

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;



        }
    });
}
我有点不对劲

公共字符串生成器OLTIP(XYDataset数据集、int系列、int项)


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

我只能猜测
localxylineandshaperender
是空的。请向我们展示一个初始化此变量(如果存在)的代码

基于此:

        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();
不检查
是否为空

实际上,if语句中的代码毫无意义,因为您对方法调用的返回值不做任何处理。

此错误可能与“segment”有关,您可以像这样尝试sthg

        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跟踪,我们可以提供更好的帮助。

private DynUnitSplinerenderer localxylineandshaperender=new DynUnitSplinerenderer(50){@Override public void setCurrentSeriesUnit(int系列,字符串单位){super.setCurrentSeriesUnit(系列,单位);//若要更改生成的方法体,请选择工具|模板。_updateCurveUnitWhenUndererUnitChanged();};此代码不可读。请编辑您的帖子并在那里添加格式化代码。