相关疑难解决方法(0)

Java函数参数是否始终按值传递?

关于如何在Java中传递参数的快速问题...

...
            if ((index = stdout.indexOf(pattern)) != -1) {
                tidy(stdout, index + pattern.length());
                return true;
            } else if ((index = stderr.indexOf(pattern)) != -1) {
                tidy(stderr, index + pattern.length());
                return true;
...

    private void tidy(StringBuffer buffer, int i) {
        logger.info("Truncating buffer: " + buffer);
        buffer = new StringBuffer(buffer.substring(i));
        logger.info("Buffer now: " + buffer);
    }

在这种情况下,stdout和stderr(用作tidy()中的参数)是否将其值更改为新的StringBuffer(buffer.substring(i))?我的假设是它们作为对象变量(对象指针)总是按值传递?

java parameters

3
推荐指数
1
解决办法
4732
查看次数

为什么Java不允许方法参数的C#"out"功能

可能重复:
为什么没有办法在java中通过引用传递

任何人都可以告诉我为什么Java在处理方法参数以通过引用传递时不提供C#"out"类型功能?我的意思是为什么它不允许我们传递原始数据类型,例如boolean,通过引用传递.我也尝试过包装类java.lang.Boolean但仍无济于事.它仍然不允许我通过引用传递变量.
是否有任何特定的原因,即使在版本7中Java仍未提供此功能?

java out pass-by-reference

2
推荐指数
1
解决办法
237
查看次数

标签 统计

java ×2

out ×1

parameters ×1

pass-by-reference ×1