今天在做java 软引用测试的时候遇到了一个问题,报错信息如下:类型 SoftReference 不带有参数
部分代码如下:
public class SoftReference{
public static void main(String[] args)
{
SoftReference<Person>[] people = new SoftReference[100];
for(int i=0;i<people.length;i++)
{
people[i] = new SoftReference<Person>(
new Person("名字"+i,(i+1)*4%100)
);
}
}
后来百度了一下,自己也琢磨了一下,明白了:
虽然 java.lang.ref.SoftReference 类的构造函数确实是有参数的,但是,注意看以上代码中的类名就是“SoftReference”,因此程序以这个自定义的SoftReference为准,不去找Java自带的那个,,,,自定义的这个SoftReference没有有显示声明构造函数,但会有一个默认的,也就是不带参数的,因此报这个错。
解决的办法很简单,把改一下类名即可,例如改成SoftReferenceTest。