我來自C編程背景。我想知道在返回值的地方編寫Java API的最佳方式是什麼,但這可能是無效的。什麼是可以接受的方法來編寫返回值可能無效的Java方法?
我有一個類實現了二叉搜索樹。它有一個方法getRootValue(),它返回根的值。
Ç代碼 -
boolean getRootValue(int *answer) {
if (root != null) {
*answer = value;
return TRUE;
} else {
return FALSE;
}
}
在用戶端,這是它的外觀喜歡 -
if (getRootValue(&answer)) {
//process valid answer
}
用戶調用這個函數會檢查返回,並只考慮answer
是如果返回值爲TRUE
,則有效。
Java框架代碼 -
package algorithm;
class bst {
node root;
class node {
int value;
node left;
node right
}
//getRootValue()
}
用戶最終
package user;
import algorithm.bst;
...
//bst.getRootValue();
在Java中,這將是(考慮到root用戶只知道BST而不是用戶),正確的方法是什麼?我們是否應該發送一個包含布爾值和答案的特殊類對象?如果是這樣,那麼應該在哪裏定義這個類?
有沒有不同的方法?對於我的BST課程實施,我應該有不同的想法嗎?
以前有問題詢問如何返回多個值。這不完全是我的問題。我想知道實現這種特殊情況的理想方式,這可能甚至可能不需要返回多個對象。
使用接口將在這裏幫助 – Arvind
除了通過@EJP你也可以考慮拋出一個異常,如果你收到惡意的用戶輸入給出了答案。這使得輸入和輸出免於兩個目的。 –
C是一種將內存視爲一個大型數組的過程語言。 Java是一種內存管理語言,可以在對象方面發揮作用。你似乎在假設一種用一種語言工作的編程語言可以很容易地轉換爲另一種語言。這並不比你希望的更多。 – scottb