message: Update NativeInterpreterWrapper.java
  adding `getInputTensorNames` and `getOutputTensorNames` to the private wrapper
diff: @@ -69,6 +69,10 @@ final class NativeInterpreterWrapper implements AutoCloseable {
  this.interpreterHandle = createInterpreter(modelHandle, errorHandle, options.numThreads);
  this.inputTensors = new Tensor[getInputCount(interpreterHandle)];
  this.outputTensors = new Tensor[getOutputCount(interpreterHandle)];
  +
  + this.inputTensorNames = getInputNames(interpreterHandle);
  + this.outputTensorNames = getOutputNames(interpreterHandle);
  +
  if (options.useNNAPI != null) {
  setUseNNAPI(options.useNNAPI.booleanValue());
  }
  @@ -268,6 +272,11 @@ final class NativeInterpreterWrapper implements AutoCloseable {
  return inputTensors.length;
  }
  + /** Gets the names of the input tensors. */
  + String[] getInputTensorNames() {
  + return inputTensorNames;
  + }
  +
  /**
  * Gets the input {@link Tensor} for the provided input index.
  *
  @@ -291,6 +300,11 @@ final class NativeInterpreterWrapper implements AutoCloseable {
  return outputTensors.length;
  }
  + /** Gets the names of the output tensors. */
  + String[] getOutputTensorNames() {
  + return outputTensorNames;
  + }
  +
  /**
  * Gets the output {@link Tensor} for the provided output index.
  *
  @@ -335,6 +349,10 @@ final class NativeInterpreterWrapper implements AutoCloseable {
  private Tensor[] inputTensors;
  private Tensor[] outputTensors;
  + // Lazily constructed and populated arrays of input and output tensor names.
  + private String[] inputTensorNames;
  + private String[] outputTensorNames;
  +
  private boolean isMemoryAllocated = false;
  // As the Java Delegate owns the native delegate instance, we keep a strong ref to any injected
  