簡體   English   中英

how can you pass an object to a function as a parameter, then have the function to assign a new object of a subtype to its parameter?

[英]how can you pass an object to a function as a parameter, then have the function to assign a new object of a subtype to its parameter?

我正在嘗試使用遞歸下降解析方法和訪問者模式構建一個編譯器,用於使用 Java 進行語義檢查。 讓我困惑的是使用訪問者模式,我們必須創建不同的子類型。 但是,Java 沒有通過引用傳遞。 這導致我無法為每個語義記錄找到正確的子類型。 這是我要實現的

Node node = new ExprNode();
changeNodeType(node);

public void changeNodeType(Node node) {
     node = new AddOpNode();
}

那么最終我的 Node 類型將以 AddOpNode() 結束。 有什么方法可以最終在 Java 中實現嗎?

您可以只返回新節點類型並將其分配到 function 之外。

Node node = new ExprNode();
node = changeNodeType();

public Node changeNodeType() {
     return new AddOpNode();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM