A Java 8 bevezet egy viselkedésváltozást a
java.awt.Component.setFocusTraversalKeys(int id, Set<? extends
AWTKeyStroke> keystrokes) és a java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes) metódusok által
dobott futási kivételek esetén, amikor a keystrokes
argumentum nem AWTKeyStroke típusú objektomkat tartalmaz.
A Java 8 változatban a metódusok e hiba esetén egy
ClassCastException kivételt dobnak az
IllegalArgumentException kivétel helyett.
Ez a szabály megjelöli a setFocusTraversalKeys és a
setDefaultFocusTraversalKeys metódusok hívásait, amikor a
metódushívást egy try utasítás foglalja magában, egy
catch részkifejezéssel az
IllegalArgumentException kivételhez.
A következő példa bemutat egy megjelölt setFocusTraversalKeys
metódust.
Public static void testSetFocusTraversal(Összetevő comp, int id, Kulcsok beállítása) {
{ Comp.setFocusTraversalKeys (azonosító, kulcsok);} fogás (IllegalArgumentKivétel:) {
...
} }
A setFocusTraversalKeys és a
setDefaultFocusTraversalKeys metódusok továbbra is
IllegalArgumentException kivételt dobnak más okok miatt,
ahogy a Java dokumentáció leírja. Értékelje ki a catch blokk
logikáját, hogy lássa, szükséges-e kezelnie a
ClassCastException kivételt is, vagy egy általánosabb
futási kivételtípust.
Az érintett osztályokkal kapcsolatos további információkat a következő helyeken talál: