Анализатор обнаружил вызов метода, в который в качестве аргумента передаётся сам объект, у которого вызывается метод. Вероятно, данный код содержит ошибку, и в метод должен передаваться другой объект.
Рассмотрим пример:
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. |