コード例 #1
0
    @SuppressWarnings("unchecked")
    @Override
    public void initialize(T instance, int constructorId, Object... args) {
      if (instance instanceof CPPObject) {
        // instance.peer = allocate(instance.getClass(), constructorId, args);
        int[] position = new int[] {0};

        Type cppType =
            CPPType.parseCPPType(
                CPPType.cons((Class<? extends CPPObject>) typeClass, args), position);
        // int actualArgsOffset = position[0] - 1, nActualArgs = args.length - actualArgsOffset;
        // System.out.println("actualArgsOffset = " + actualArgsOffset);
        // Object[] actualArgs = new Object[nActualArgs];
        // System.arraycopy(args, actualArgsOffset, actualArgs, 0, nActualArgs);

        setNativeObjectPeer(
            instance, newCPPInstance((CPPObject) instance, cppType, constructorId, args));
        super.initialize(instance, DEFAULT_CONSTRUCTOR);
      } else {
        super.initialize(instance, constructorId, args);
      }
    }