正如你们中的一些人所知,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/