>
>
>
V6100. An object is used as an argument…


V6100. An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method.

Анализатор обнаружил вызов метода, в который в качестве аргумента передаётся сам объект, у которого вызывается метод. Вероятно, данный код содержит ошибку, и в метод должен передаваться другой объект.

Рассмотрим пример:

a.foo(a);

Здесь из-за опечатки используется неверное имя переменной. Тогда корректный код должен был быть таким:

a.foo(b);

или таким:

b.foo(a);

Пример кода из реального приложения:

public class ByteBufferBodyConsumer {
  private ByteBuffer byteBuffer;
  ....
  public void consume(ByteBuffer byteBuffer) {
    byteBuffer.put(byteBuffer);
  }
}

Здесь в 'byteBuffer' пытаются вставить его собственные значения.

Корректный код должен выглядеть так:

public class ByteBufferBodyConsumer {
  private ByteBuffer byteBuffer;
  ....
  public void consume(ByteBuffer byteBuffer) {
    this.byteBuffer.put(byteBuffer);
  }
}

Данная диагностика классифицируется как:

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V6100.