Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用参考变量_Java_Variables - Fatal编程技术网

Java 使用参考变量

Java 使用参考变量,java,variables,Java,Variables,我有两个班,分别是: 头等舱: 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

我有两个班,分别是:

头等舱:

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() {
}
}
包内存接口;
导入java.util.SortedSet;
导入java.util.TreeSet;
/**
*
*@作者omid
*/
公共类内存数据{
私有对象_data=null;
公共内存数据(){
}
/**
*@返回_数据
*/
公共分类数据集getDatas(){
if(this.\u data==null){
这是。_data=new TreeSet();
getDataOfDatabase();
}
返回(分类数据集)\ u数据;
}
/**
*@param data要设置的_数据
*/
公共无效集合数据(分类集合数据){
这是._data=datas;
}
公共T getDataOfMemory(int i){
返回(T)getDatas().toArray()[i];
}
公共无效附加项(T数据){
this.getDatas().add(数据);
}
公共无效删除(T数据){
this.getDatas().remove(数据);
}
受保护的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);
}
}
公共类CabineImpl扩展MemoryData{
专用静态分类数据集_data=null;
公共橱柜impl(){
setDatas(_datas);
}
@凌驾
受保护的void getDataOfDatabase(){
CabinetDaoImpl_cab=新的CabinetDaoImpl();
List _lst=_cab.getTable();
如果(!lst.isEmpty()){
对于(int i=0;i
在第二个类中,我有一个静态变量(_datas)be,在构建CabineImpl类时,_datas会传输到MemoryData,但不会影响MemoryData对_datas的更改。


请帮帮我

不允许重写继承类中超类的私有变量。使用MemoryData的getter和setter在不同的类中有两个同名的不同字段


它们彼此没有关系,属于不同的类型。如果您只想要一份,我建议删除其中一份。

我建议您是一个特定的问题。这强烈表明您使用了错误的收藏<代码>返回(T)getDatas().toArray()[i]