Object<T> obj = new Object<T>();或者用getInstance()写个内部类都是可以的哇
怎么总是提到Object<T> obj = new Object<T>(),是我没理解还是大家理解错了,我重新写一下问题: 现在要写一个对象池的类,目的是一次性声明并初始化很多对象,减少不停new对象的开销,现遇到一个问题,public class DataPool<T>{ LinkedList<T> mObjectList = new LinkedList<T>(); ... public void newObject(){ ... for (int i = 0; i < maxModify; i++) { T object = new T(); mObjectList.addFirst(object); } ... } ... }现在关键是T object = new T()这句,java中并不能这样创建对象,该则呢解决呢,能不能稍微详细一点。。
public class Student{ private String stuName; publice String getStuName(){ return this.stuName; } }
<T>是一个占位符,不能通过new实例一个对象。可以使用多态性间接达到目的 T obj = (T)(new Object()) ;
你声明一个具备变量的时候,类型必须指定,如 Object<User> o = new Ojbect<User>();
如这位兄弟说,那是一个占位符,不能new。
帮你改一下 public class DataPool<T>{ LinkedList<T> mObjectList = new LinkedList<T>(); ... public void newObject(T target){ ... for (int i = 0; i < maxModify; i++) { //T object = new T(); mObjectList.addFirst(target); } ... } ... //用到的时候这样 DataPool<A> dp = new DatPool<A>(); dp.newObject(new A()); }
Object<T> obj = new Object<T>();
现在要写一个对象池的类,目的是一次性声明并初始化很多对象,减少不停new对象的开销,现遇到一个问题,public class DataPool<T>{
LinkedList<T> mObjectList = new LinkedList<T>();
...
public void newObject(){
...
for (int i = 0; i < maxModify; i++) {
T object = new T();
mObjectList.addFirst(object);
}
...
}
...
}现在关键是T object = new T()这句,java中并不能这样创建对象,该则呢解决呢,能不能稍微详细一点。。
public class Student{
private String stuName;
publice String getStuName(){
return this.stuName;
}
}
T obj = (T)(new Object()) ;
你声明一个具备变量的时候,类型必须指定,如 Object<User> o = new Ojbect<User>();
public class DataPool<T>{
LinkedList<T> mObjectList = new LinkedList<T>();
...
public void newObject(T target){
...
for (int i = 0; i < maxModify; i++) {
//T object = new T();
mObjectList.addFirst(target);
}
...
}
...
//用到的时候这样
DataPool<A> dp = new DatPool<A>();
dp.newObject(new A());
}