Я устал от следующего кода Java, и результат был «null». Я думал, что два n - это тот же указатель, указывающий на разную память (в основной функции и в тестовой функции). Если я инициирую n как null в основной функции, назначьте его в тестовой функции и захотите использовать его вне тестовой функции (без возврата n). Как мне это сделать?Область переменных Java, назначение переменных и декларация в разных функциях
public class ttt {
static class LinkNode {
int val;
public LinkNode(int p) {
val = p;
}
}
public static void test(Set<LinkNode> n) {
n = new HashSet<>();
LinkNode a = new LinkNode(1);
n.add(a);
}
public static void main(String[] args) {
Set<LinkNode> n = null;
test(n);
System.out.println(n);
}
}
возможно дубликат [Является Java «перейти по ссылке» или «передача по значению»?] (Http://stackoverflow.com/ вопросы/40480/is-java-pass-by-reference-or-pass-by-value) – Vitruvius
да, дублируется. здесь это значение пропускной способности/справки. –
Я заметил, что первая строка в тестовой функции вызывает проблему, но что, если я не знаю, является ли n нулевым или нет, и я хочу проверить его внутри тестовой функции. если он равен нулю, я хочу запустить его внутри тестовой функции. что я могу сделать? – user3483236