错误:类型不兼容:布尔值无法转换为List <string>

时间:2019-02-13 17:11:44

标签: java

我收到以下错误。 第15行:错误:类型不兼容:布尔值无法转换为列表 integer.toString()返回一个字符串实例,我将其添加到字符串列表中。 为什么给布尔值不能转换为错误。因为返回值是字符串,而我想添加的值也是一个字符串。

在此处输入代码

class Solution {
  public List<String> findMissingRanges(int[] nums, int lower, int upper) 
  {
    List<String> res=new ArrayList<String>();
    if(nums.length==0
    {
        if(upper-lower==2)
        {
            //String a=Integer.toString(lower+1);
            //res.add(a);
            res.add(Integer.toString(123));
        }
        else if(upper-lower>2)
        {

            return res.add(Integer.toString(lower)+">"+Integer.toString(upper));
         }   
    }

    int r=upper;
    boolean flag=false;
    for(int i=0;i<nums.length;i++)
    {

        if(i==0 && nums[i]-lower>=2 && res.size()==0)
        {
            upper=nums[i];
            flag=true;
        }
        else if(i!=nums.length-1)
        {
            upper=nums[i+1];
            lower=nums[i];
        }
        if(i==nums.length-1)
        {
            lower=nums[i];
            upper=r;
        }
        if(upper-lower==2)
        {
            //int temp=lower+1;
            Integer temp=new Integer(lower+1);
            res.add(temp.toString());
            if(i==0 && flag==true)
            {
                i--;
                flag=false;
            }
        }
        else if(upper-lower>2)
        {
            int a=lower+1;
            if(i==0 && flag==true)
            {
                i--;
                a=lower;
                flag=false;    
            }
            int b=(i==nums.length-1)?upper:upper-1;
            String subRes=a+"->"+b;
            res.add(subRes);


        }

    }
    return res;

  }
}

3 个答案:

答案 0 :(得分:3)

您正在做return res.add(...);,并且add方法返回一个布尔值(实际上,我只是出于好奇而检查,它似乎总是返回true)。

如果您想返回列表,请执行以下操作:

res.add(...);
return res;

答案 1 :(得分:0)

List.add()返回一个布尔值。

  

如果此集合由于调用而更改,则返回true

自从您返回'0'以来,它正在从函数中返回'='。但是,您的函数定义说将返回类型定义为res.add()。因此,错误。

您应该在函数末尾返回列表。

boolean

答案 2 :(得分:0)

您的方法类型返回List,但是当您调用res.add时,您没有返回列表-而是返回值'true',因为这是添加到列表中的返回值,例如根据文档。 https://docs.oracle.com/javase/7/docs/api/java/util/List.html#add(E)