Ez szintaktikailag helyes Java. De én nem látom, hogy ez esetleg csinál, mit szándékozik.
Úgy tűnik, hogy az „elem” paraméter a dolog, amit keresnek, és az „első” mezőben az aktuális osztály a gyökér a bináris fa.
Még nem világos, a kulcsot a bináris fa és a keresési (az Element osztály) van „eszköz” vagy „adatok”. A „kevesebb, mint” test használja az „eszköz”, míg a „nagyobb, mint” vizsgálati célokra „adatok”. Valószínűnek tűnik, hogy mindkét vonalon kell használnia ugyanazon a területen. Lehet, hogy az egyik a két terület (az „eszköz” vagy „adatok”) kell nem lehet hivatkozni ez a módszer egyáltalán. Talán az utolsó sorban a módszert kell csak „return true;”?
(Gyanítom, hogy a „Stop állapot” és a „kód nem szimmetrikus” válaszok felett egyaránt megfelelő. De lehet, hogy tévedek: Nehéz megmondani, hogy csak a megadott kód.)
Egyetértek azzal, hogy a végtelen hurok valószínű: Gyanítom, hogy létre kell hozni egy második „keresés” funkciót, amely elfogadja a két „Element” paraméterek - az egyik, hogy a dolog keresni (mint a jelenlegi „elem” paraméter) és a többi lény a következő elem keresni - ami megegyezik a jelenlegi helyi változó „c”. Én is így tennék „Extract Method” újratervezés mindent a szervezetben a jelenlegi „keresés” módszert, kivéve az első sorban, és változtassa meg a két rekurzív hívások az új módszer használata.
(Néhány ilyen spekulatív alapján nekem kitalálni, mit szeretne, vagy szándékozik, mivel korlátozott mennyiségű információ. Így tudtam, persze, elég rossz.)