This question already has answers here:
What is a NullPointerException, and how do I fix it?
                                
                                    (12个答案)
                                
                        
                                3年前关闭。
            
                    
我将数组元素的所有对的总和存储到pairSum []数组中。
为此,我创建了PairSum类,该类存储两个元素及其和。

但是我在行pairSum[k].sum = v上得到了空指针异常

我已经创建了数组

PairSum[] pairSum = new PairSum[val];


我究竟做错了什么?

public class test {
            class PairSum{
                int first;
                int second;
                int sum;
            }
            public static void findElements(int arr[], int n){
                int val = (n*(n-1))/2;
                PairSum[] pairSum = new PairSum[val];
                int k=0;
                for(int i=0;i<n-1;i++){
                    for (int j=i+1;j<n;j++){
                        int v = arr[i] + arr[j];
                        System.out.println("sum..." + v);
                        pairSum[k].sum = v;//NullPointerException here
                        System.out.println("valll.." + pairSum[k]);
                        pairSum[k].first = arr[i];
                        pairSum[k++].second = arr[j];

                    }
                }
           }
           public static void main(String[] args) {
                int arr[] = {10, 20, 30, 40, 1, 2};
                int n = arr.length;
                findElements (arr, n);
            }
          }

最佳答案

到目前为止,您仅创建了一个可以容纳类型为PairSum的对象的数组。您需要分别实例化每个PairSum对象:

pairSum[k] = new PairSum();


在访问PairSum数组中的任何pairSum之前。

10-05 22:22