У Java есть указатели.
Путаница, имеет ли Java указатели или нет, тесно связана с обсуждением, является ли Java вызовом по ссылке или вызовом по значению.
Неинформированные люди думают, что в Java нет указателей, и поскольку метод может изменить объект, который был передан, с эффектами этого изменения, видимыми для вызывающего, они считают, что его нужно вызывать по ссылке.
Это не правильно, однако.
Что происходит, так это то, что в Java указатели передаются по значению . В Java нет других типов переменных для объектов, кроме переменных-указателей, и нет вызова по ссылке.
«Небезопасная» история - это совсем другое. Обычно это отличается от вопроса, есть ли в Java указатели или нет. Указатели Java безопасны; они указывают на объекты и, используя обычные языковые конструкции, ими нельзя манипулировать, чтобы указывать на произвольные области памяти.
Существует, однако, JNI, но потом нативный код делает потенциально небезопасные вещи, а не код Java.
Существует также Java в реальном времени (jsr-1), где вы абсолютно точно можете получить доступ к определенным областям памяти в вашей системе. Это, однако, очень специфическая и довольно редкая версия Java, которая в основном используется для встраиваемых целей. Если бы это подразумевалось, я предполагаю, что это было бы явно упомянуто.
Не лучший ответ, но одна идея состоит в том, чтобы перенести исходный код по словам перед его включением. Если вы работаете в Linux, для этого можно использовать команду fold . Ясно, что это работает лучше всего, если текст имеет шрифт фиксированной ширины, который я бы рекомендовал в любом случае для листингов кода.
I just had this problem...
breaklines
worked for me, though you do need to set it to true - the default is false:
\lstinputlisting[style=Python,
caption=My Class,
label={mine.py},
breaklines=true,
]{../python/mine.py}
is pretty much what I used