在我今天看到一个例子之前,我以为我理解了java中局部和全局变量之间的区别.在此代码中,我们尝试将元素添加到方法中的链接列表中:
public void addDataPacket(DataPacket data){
PacketQueueElement newElement = new PacketQueueElement(data);
if(firstElement != null){
lastElement.setNextElement(newElement);
lastElement = newElement;
}
else{
firstElement = newElement;
lastElement = newElement;
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么newElement在方法关闭后不会消失?因为这是一个局部变量,并且没有在类中的任何地方定义.以下是此类的完整代码:
public class PacketQueue {
/** Das erste Element in der Warteschlange */
private PacketQueueElement firstElement;
/** Das letzte Element in der Warteschlange. */
private PacketQueueElement lastElement;
/**
* Instanziert eine neue Warteschlange.
*/
public PacketQueue(){
this.firstElement = null;
this.lastElement = null;
}
/**
* Fuegt ein neues Paket ans Ende der Warteschlange …Run Code Online (Sandbox Code Playgroud)