SOとウェブを検索した後、私はまだJavaで答えを出していません。それはかなり簡単です。オブジェクトのクラスを決定するためにswitchステートメントを使用できますか?
私は抽象クラスParentClassを持っています。クラスXとクラスYは両方ともParentClassから継承します。クラスDataInputDialog extends JDialog
もあります。これは、クラスXインスタンスとクラスYインスタンスにデータを入力するためのユーザーインターフェイスを提供することを目的としています。 DataInputDialogクラスは以下のようになります。
public class DataInputDialog extends JDialog {
public DataInputDialog(ParentClass xOrY) {
//calls super constructor, makes basic components such as
// buttons and panels that are used in either X or Y data entry
}
}
今私はDataInputDialog
に渡されたParentClass
の種類を決定するであろうswitch
文を持っているしたいと思います。しかし、私はどのようにそれを達成するための手がかりを持っていない。
switch (xOrY.getClass().getTypeName()) {
case X.class.getTypeName();
}
やカップル他のバリエーションを、それは常にどちらかと言ってcase文のエラーを思い付く:私が試した、それは一定の文字列である必要があり、またはそれを整数に変換することができないこと。
xOrY
がX
またはY
のインスタンスであるかどうかを判別するには、どのようにこのswitch文を使用しますか?
なぜそれを知る必要がありますか?それらが親から派生し、親として渡している場合は、親のように扱う必要があります。 – ChiefTwoPencils
おそらく他の何かをすることができますが、スイッチを使用しないでください。'if'と' instanceof'を使用してください。 –
'xOrY instanceof X'または' xOrY.getClass()== X.class'を 'if ... else if ... 'と使用することができます。 –