Please solve the programming task below using a self-contained code snippet in a markdown code block.

You are given an array nums that consists of non-negative integers. Let us define rev(x) as the reverse of the non-negative integer x. For example, rev(123) = 321, and rev(120) = 21. A pair of indices (i, j) is nice if it satisfies all of the following conditions:

0 <= i < j < nums.length
nums[i] + rev(nums[j]) == nums[j] + rev(nums[i])

Return the number of nice pairs of indices. Since that number can be too large, return it modulo 109 + 7.
 
Please complete the following python code precisely:
```python
class Solution:
    def countNicePairs(self, nums: List[int]) -> int:
```