Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V6100. An object is used as an...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

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

17 Ноя 2020

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

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

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.