По документации , public Body retrieveActiveBody()
:
Возвращает активное тело, если оно есть, иначе создает активное тело и возвращает его.
Давайте посмотрим на класс Body
:
public abstract class Body
extends AbstractHost
implements Serializable
Так что это класс Abstract
, и, за вашим исключением, он возвращает JimpleBody
, подкласс Body
.
Если Rabbit
равен Animal
, а Wolf
также Animal
, Rabbit
не является Wolf
.
Вы можете редактировать код следующим образом:
if (method.retrieveActiveBody() instanceof JimpleBody) {
} else if (method.retrieveActiveBody() instanceof DavaBody) {
} else if (method.retrieveActiveBody() instanceof BafBody) {
} else if (method.retrieveActiveBody() instanceof StmtBody) {
} else {
}