void statically() { std::cout << "statically" << std::endl; // Create a c++ proxy on an java Allocation object instance Allocation A; // Create another c++ proxy on the same java Allocation object instance Allocation Acopy(A); // Create another c++ proxy on the same java Allocation object instance Allocation Acopy2(A.getJavaObject()); // Create a c++ proxy on another java Allocation object instance Allocation Aclone = A.clone(); std::cout << "Allocation: "; assertThat(A.getValue()).isEqualTo(-1); assertThat(Acopy.getValue()).isEqualTo(-1); assertThat(Acopy2.getValue()).isEqualTo(-1); assertThat(Aclone.getValue()).isEqualTo(-1); std::cout << "ok" << std::endl; A.setValue(2); std::cout << "A.setValue(2): "; assertThat(A.getValue()).isEqualTo(2); assertThat(Acopy.getValue()).isEqualTo(2); assertThat(Acopy2.getValue()).isEqualTo(2); assertThat(Aclone.getValue()).isEqualTo(-1); std::cout << "ok" << std::endl; Aclone.setValue(3); std::cout << "Aclone.setValue(3): "; assertThat(A.getValue()).isEqualTo(2); assertThat(Acopy.getValue()).isEqualTo(2); assertThat(Acopy2.getValue()).isEqualTo(2); assertThat(Aclone.getValue()).isEqualTo(3); std::cout << "ok" << std::endl; Acopy.setValue(4); std::cout << "Acopy.setValue(4): "; assertThat(A.getValue()).isEqualTo(4); assertThat(Acopy.getValue()).isEqualTo(4); assertThat(Acopy2.getValue()).isEqualTo(4); assertThat(Aclone.getValue()).isEqualTo(3); std::cout << "ok" << std::endl; }