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]代码>