Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08
Анализатор обнаружил ситуацию, когда сравнение классов осуществляется по имени. Такое сравнение является некорректным, т.к. согласно спецификации JVM классы имеют уникальное имя только внутри пакета.
Помимо логических ошибок, такой код может в некоторых случаях привести к различным уязвимостям, поскольку не известно, какое поведение у непроверенного класса.
Пример:
if (obj.getClass().getSimpleName().equals("Plane"))
{
....
}
Такой код следует переписать следующим образом:
if(obj.getClass().equals(ArrayList.class))
{
....
}
либо:
if (obj instanceof Plane)
{
....
}
или же:
if (obj.getClass().isAssignableFrom(Plane.class))
{
....
}
Диагностическое правило классифицируется как:
|
Взгляните на примеры ошибок, обнаруженных с помощью диагностики V6054. |
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: