also dürfte das doch eigentlich kein Problem sein zu casten oder?
Doch, es ist ein Problem.
getLanCfg() liefert Dir eine Instanz von LanCfg. Irgendeine. Es könnte direkt eine LanCfg-Instanz sein (falls LanCfg nicht abstrakt ist), oder die Instanz einer beliebigen anderen, von LanCfg abgeleiteten Klasse, z.B. SingleLanCfg (hypothetisch). Und wenn es aber irgendwas anderes ist als DualLanCfg, gibt es eine Cast-Exception. Nur mit Blick auf die Signatur der Methode kannst Du Dir überhaupt nicht sicher sein, dass Du eine DualLanCfg bekommst, und deshalb warnt Dich FindBugs.
Wieso ist das "kein Problem" zu casten? Wenn cgf.getLanCfg eine LanCfg Instanz zurückliefert, knallt es ...
Ich würde ein ILanCfg Interface erstellen, das von LanCfg implementiert wird. Dann liefert getLanCfg immer eine Instanz mit dem Interface zurück und Du kannst mit "as" versuchen daraus wieder eine DualLanCfg zu machen ...
ILanCfg lanCfg = cfg.getLanCfg(); DualLanCfg dualLanCfg = lanCfg as DualLanCfg; if (dualLanCfg == null) throw new Exception ...
Denk mal bitte dran, die Sprache bei den Tags mit anzugeben!