java - 是否可以从函数返回 L 值

标签 java

正如你们中的一些人所知,C++ 允许这样做:

get( array, 5 ) = 5;

使用 get 函数实现如下:

int& get( int* array, int index ) { return array[index]; }

在 Java 中有类似的东西吗?更具体地说,我想将数组索引逻辑封装在一个函数中(以一种高性能的方式)。

最佳答案

没有这样的选择。非对象(文字)是原始类型,您不能简单地连接两个变量,以便在更改一个时,第二个也会更改。

所有对象都由其引用表示,您可以使用这些引用来更改持有对象的某些属性。这意味着您可以编写代码:

getMyObject().setX(newXVal);

但是你不能写:

getMyObject().getX() = newVal;

因为方法 getX()(以及任何不返回 void 的方法)总是返回值类型(当返回 Object 时,它是它的地址,当返回文字时,它只是这个文字的值)。

如果您想用 Java 编写性能优化的代码 - 首先编写,然后测量,最后调整它(如果测量步骤表明它很慢)。 JVM 有足够的优化来使您的代码尽可能快,您不必过早地优化代码。

关于java - 是否可以从函数返回 L 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20279630/

相关文章:

java - 线程 "ajp-bio-8009-exec-1"中的异常

Java代码 "NumberFormat nf = NumberFormat.getInstance();"

java - 如何防止某个类的多个对象实例化

java - 从 Android 应用程序中的 WebView 读取字段

java - Android 删除操作栏标题保留工具栏菜单

java - 使用 live 选项时,jmap 是否强制进行垃圾收集?

java - 使用 Xades Bes 时间戳封装签名

java - 尝试连接本地主机时拒绝连接

java - android应用程序中如何处理域认证?

java - Blackberry Screen 类中的 super 构造函数调用