Java никогда не является передачей ссылкой, правильно? … право? [дубликат]

Бесконечные прокрутки на веб-странице основаны на функциональности Javascript. Поэтому, чтобы выяснить, к какому URL-адресу мы должны обратиться и какие параметры использовать, нам нужно либо тщательно изучить код JS, работающий внутри страницы, либо, предпочтительно, изучить запросы, которые браузер выполняет при прокрутке страницы. Мы можем изучать запросы, используя Инструменты разработчика. См. Пример для quora

. Чем больше вы прокручиваете вниз, тем больше генерируется запросов. поэтому теперь ваши запросы будут выполняться по этому URL-адресу вместо обычного URL-адреса, но помните, что нужно отправлять правильные заголовки и данные о загрузке.

другим более простым решением будет использование селена

45
задан Community 23 May 2017 в 12:34
поделиться

4 ответа

Как сказал Ритмис, Java передает ссылки по значению. Это означает, что вы можете на законных основаниях вызывать изменяющие методы для параметров метода, но не можете переназначать их и ожидать распространения значения.

Пример:

private void goodChangeDog(Dog dog) {
    dog.setColor(Color.BLACK); // works as expected!
}
private void badChangeDog(Dog dog) {
    dog = new StBernard(); // compiles, but has no effect outside the method
}

Редактировать: Что это означает в этом случае что хотя voiceSetList может измениться в результате этого метода (к нему может быть добавлен новый элемент), изменения в vsName не будут видны вне метода , Чтобы избежать путаницы, я часто отмечаю параметры моего метода final , что предотвращает их переназначение (случайно или нет) внутри метода. Это предотвратит компиляцию второго примера.

105
ответ дан 26 November 2019 в 20:53
поделиться

Java передает ссылки по значению , поэтому вы получаете копию ссылки, но объект ссылки является тем же. Следовательно, этот метод изменяет список ввода.

28
ответ дан 26 November 2019 в 20:53
поделиться

Ну, он может манипулировать ArrayList - который является объектом ... если вы передаете ссылку на объект (даже передаваемую по значению), изменения этого объекта будет отражено для звонящего. Это вопрос?

2
ответ дан 26 November 2019 в 20:53
поделиться

Я думаю, вы запутались, потому что vsName изменено. Но в этом контексте, это просто локальная переменная, точно такого же уровня, что и сокращенный VoiceSetName.

1
ответ дан 26 November 2019 в 20:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: