我收到以下错误。 第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;
}
}
答案 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)