これまで、次のコードを使用して、一部のメソッドの適用を特定のクラスのインスタンスに制限してきました。たとえば、を使用しますItemListener
が、これは多くのことに適用できます。
public class mListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
if (!(e.getItemSelectable instanceof JCheckBox)) { //again, JCheckBox was chosen arbirtarily
System.err.println("mListener can only be applied to a JCheckBox");
return;
}
}
}
ただし、Oracle Javaチュートリアルのいくつかの場所で、次のコードを見ました。
public class mListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
JCheckBox box = null;
try {
box = (JCheckBox) e.getItemSelectable();
} catch (ClassCastException ex) {
System.err.println("mListener can only be applied to a JCheckBox");
return;
}
}
}
メソッドを適用したくないクラスをロックアウトするための最良の方法はどれですか?これは特に、パラメータを変更できない実装インターフェイスの場合に当てはまります。