不承认的保证 import java.util.*; 甲级{ 公共静态void main(字符串[]args){ } 私人名单; 专用随机生成器=新随机(); A(初始列表){ bList=newarraylist(); int listSize=initialList.size(); bList.recapacity(列表大小); 对于(B:初始列表){ int bIndex=generator.nextInt(listSize); bList.add(bIndex,b); } } } B类{ }
我一直在读错误 线程“main”java.lang.RuntimeException中的异常:不可编译 源代码-错误的符号类型:java.util.List.EnsureCapity不承认的保证 import java.util.*; 甲级{ 公共静态void main(字符串[]args){ } 私人名单; 专用随机生成器=新随机(); A(初始列表){ bList=newarraylist(); int listSize=initialList.size(); bList.recapacity(列表大小); 对于(B:初始列表){ int bIndex=generator.nextInt(listSize); bList.add(bIndex,b); } } } B类{ },java,list,Java,List,我一直在读错误 线程“main”java.lang.RuntimeException中的异常:不可编译 源代码-错误的符号类型:java.util.List.EnsureCapity ensureCapacity不是List类型的方法 是的,它是ArrayList的一个方法,但引用bList是一个列表,您应该将其强制转换为ArrayList以使用该方法,如下所示: import java.util.*; class A{ public static void main(String[]
ensureCapacity不是List类型的方法 是的,它是ArrayList的一个方法,但引用bList是一个列表,您应该将其强制转换为ArrayList以使用该方法,如下所示:
import java.util.*;
class A{
public static void main(String[] args){
}
private List <B> bList;
private Random generator = new Random();
A(List<B> initialList){
bList = new ArrayList<B> ();
int listSize = initialList.size();
bList.ensureCapacity(listSize);
for (B b : initialList) {
int bIndex = generator.nextInt(listSize);
bList.add(bIndex , b);
}
}
}
class B{
}
((ArrayList)bList.ensureCapacity(listSize);
对于(B:初始列表){
int bIndex=generator.nextInt(listSize);
bList.add(bIndex,b);
}
顺便说一下,在我的整个程序生命周期中,我从未直接调用ArrayList的方法ensureCapacity。List
是一个接口,但它不包含ensureCapacity
的定义。这在ArrayList
和LinkedList
中可用-因此您必须将bList
强制转换为ArrayList
以调用ensureCapacity
((ArrayList<B>) bList).ensureCapacity(listSize);
for (B b : initialList) {
int bIndex = generator.nextInt(listSize);
bList.add(bIndex , b);
}
((ArrayList)bList.ensureCapacity(listSize);
IDE总是好的,时间是宝贵的,如果您使用任何IDE编程,您肯定会在这个bList.ensureCapacity(listSize)上得到一个红色标记代码>与一条消息连成一行,这将确保您有时间找到解决方案。该消息清楚地表明,ensureCapacity(int)
对于列表界面是未定义的
((ArrayList<B>) bList).ensureCapacity(listSize);
类型列表的方法ensureCapacity(int)未定义
因此,在列表接口(ArrayList)的实现中可以使用ensureCapacity(int)
方法,将此行(bList)bList.ensureCapacity(listSize)
强制转换为((ArrayList)bList.ensureCapacity(listSize)代码>如果要在列表上调用ensureCapacity,则应将其声明为ArrayList而不是列表
一般来说,如果你能避免的话,就不应该进行铸造。您应该声明变量尽可能通用,而无需强制转换。这并不总是可能的,但在这种特殊情况下,没有理由不这样做
The method ensureCapacity(int) is undefined for the type List<B>