У меня есть два класса, следующий:Использование ссылочного переменная
первый класс:
package MemoryInterfaces;
import java.util.SortedSet;
import java.util.TreeSet;
/**
*
* @author omid
*/
public class MemoryData<T> {
private Object _datas =null;
public MemoryData() {
}
/**
* @return the _data
*/
public SortedSet<T> getDatas() {
if (this._datas==null) {
this._datas=new TreeSet<T>();
getDataOfDatabase();
}
return (SortedSet<T>)_datas;
}
/**
* @param data the _data to set
*/
public void setDatas(SortedSet<T> datas) {
this._datas=datas;
}
public T getDataOfMemory(int i) {
return (T) getDatas().toArray()[i];
}
public void addItem(T data) {
this.getDatas().add(data);
}
public void remove(T data) {
this.getDatas().remove(data);
}
protected void getDataOfDatabase() {
}
}
второго класс:
public class CabinetImpl extends MemoryData<CabinetItem> {
private static SortedSet<CabinetItem> _datas = null;
public CabinetImpl() {
setDatas(_datas);
}
@Override
protected void getDataOfDatabase() {
CabinetDaoImpl _cab = new CabinetDaoImpl();
List<Cabinet> _lst = _cab.getTable();
if (!_lst.isEmpty()) {
for (int i = 0; i < _lst.size(); i++) {
AddToMemory(_lst.get(i).getID(), _lst.get(i).getName(), _lst.get(i).getSub(), _lst.get(i).getDepid());
}
_datas=getDatas();
}
}
private void AddToMemory(int id, String name, int sub, int depid) {
CabinetItem _cab = new CabinetItem(id, name, sub, depid);
addItem(_cab);
}
}
во втором классе, у меня есть статический varible (_datas) быть при построении класса cabinetImpl, _datas передавать в MemoryData, но не влиять на изменения в MemoryData на _datas.
Пожалуйста, помогите мне!
Предлагаю вам конкретный вопрос. –
Это настоятельно предполагает, что вы используете неправильную коллекцию. 'return (T) getDatas(). toArray() [i];' –