java - 可以从Java中的参数返回值吗?

标签 java android notify notificationmanager

据我所知,Java 总是通过“按值传递”来调用方法。 但我看到了Android的NotificationManager.notify(String, int, Notification)的引用:

Returns

 the id of the notification that is associated with the string

identifier that can be used to cancel the notification

请引用引用资料: http://developer.android.com/reference/android/app/NotificationManager.html

这怎么会发生? 难道是我理解错了什么?

BR, 亨利

最佳答案

关于本声明:

“Java 按值传递基元, 但通过引用传递对象。”

这不准确。 Java 按值传递所有内容,但根本不传递对象。

  • 对于基元:副本被传输到方法(不要忘记 String 不是基元) - 你说的是正确的
  • 对于引用变量:它们也按值传输:引用变量的副本被传输到方法。所以对象本身永远不会被传输。可以在方法中更改对象(通过调用其某些方法),从方法返回后您将看到修改(例如,更改 Person 对象的“name”成员),但如果更改引用,则此更改在方法外部不可见:

更改引用是通过“new”运算符或通过像 param = some_other_reference 这样的赋值来完成的(其中 some_other_referece 指向堆上的某个其他对象)。更改引用不会影响“原始”引用,只会影响“复制引用”(方法内部使用的引用)。

关于java - 可以从Java中的参数返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4162742/

相关文章:

java - 生成签名 APK 错误

Java:在多个线程上等待/通知

java - 执行等待和通知时返回意外结果

java - 如果性别=男性或女性打印结果

python - 从内部存储 kivy python 加载图像

java - 我如何在 android studio 中创建 key 存储文件?

java - 等待和通知不是静态的

Java参数传递问题

java - Log4j 2.16.0 java 8

java - Spring 3 MVC - 在生产中找不到 Url 映射 (404)