Использовать ссылочную переменную - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть два класса, следующие:

первый класс:

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);
}
}

во втором классе, у меня есть статическая переменная (_datas) при создании класса cabinetImpl, передача _datas в MemoryData, но не изменение изменений в MemoryData на _datas.

Пожалуйста, помогите мне!

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

У вас есть два разных поля с одинаковыми именами в разных классах.

Они не связаны друг с другом и разными типами.Если вы хотите иметь только одну копию, я предлагаю удалить одну из них.

0 голосов
/ 13 февраля 2012

Вы не можете переопределить закрытую переменную суперкласса в унаследованном классе.Используйте геттеры и сеттеры MemoryData

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...