Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring单例传递到其他对象_Java_Spring - Fatal编程技术网

Java Spring单例传递到其他对象

Java Spring单例传递到其他对象,java,spring,Java,Spring,我从我正在编写的程序中得到了一些奇怪的行为,我对bean是如何传递的感到好奇 以下是代码(伪代码…ish): 我在数组中看到了不同的对象。是的,arraylist的每个对象中的生成器应该是相同的。因为SpringBean在默认情况下是单例的 您是否对arraylist中的generator对象进行了比较?这应该是真的,因为它们都是同一个对象。是的 get(0).getNextValue()影响对象。get(1).getNextValue() 提供的getNextValue()实现是否完整?因为在

我从我正在编写的程序中得到了一些奇怪的行为,我对bean是如何传递的感到好奇

以下是代码(伪代码…ish):


我在数组中看到了不同的对象。

是的,arraylist的每个对象中的生成器应该是相同的。因为SpringBean在默认情况下是单例的

您是否对arraylist中的generator对象进行了比较?这应该是真的,因为它们都是同一个对象。是的

get(0).getNextValue()影响对象。get(1).getNextValue()


提供的
getNextValue()
实现是否完整?因为在同一对象上按逻辑顺序调用
getNextValue()
将始终返回不同的值

是,arraylist的每个对象中的生成器应该相同。因为SpringBean在默认情况下是单例的

您是否对arraylist中的generator对象进行了比较?这应该是真的,因为它们都是同一个对象。是的

get(0).getNextValue()影响对象。get(1).getNextValue()


提供的
getNextValue()
实现是否完整?因为在同一对象上按逻辑顺序调用
getNextValue()
将始终返回不同的值

对象类有这样的构造函数吗?对象类有这样的构造函数吗?
<bean id="Factory" class="com.xxx.xxx.Factory">
    <constructor-arg name="generator" ref="Generator"/>
</bean>

<bean id="Generator" class="com.xxx.xxx.Generator">
    <constructor-arg name="min" value="0"/>
    <constructor-arg name="max" value="5"/>
</bean>

class Generator {

    public Generator (min, max) {}

    public Integer getNextValue () {

        return nextValueInSequence; // min > max cyclically

    }

}


class Factory{

    public Factory (Generator generator) {

        ArrayList<Object> objects = new ArrayList<>();

        for (0 ... 4) {
            Object obj = new Object(generator);
            objects.add(obj);
        }

    }

}
objects.get(0).getNextValue() > 2
objects.get(1).getNextValue() > 3
objects.get(0).getNextValue() > 4