※ ChatGPTを利用し、要約された質問です(原文:iアプリのstar言語の質問です。)
iアプリのstar言語でのint型の検出方法について
このQ&Aのポイント
iアプリのstar言語でint型の変数の検出方法について質問があります。試した方法はいくつかありましたがうまくいかず、他に対応方法があれば教えていただきたいです。
試した方法は『変数 == 比較対象』や『変数.equals(比較対象)メソッド』、『変数 instanceof 参照型のクラス』、『変数.getClass().getName() == 比較対象』などですが、いずれもエラーメッセージが発生しました。
プリミティブ型の値が代入された変数の型を検出する方法を知りたいです。よろしくお願いします。
iアプリのstar言語 (Java拡張言語) の質問です。
if文の条件式に『対象の変数の値がint型なら』という式の書き方を教えてください。
色々調べて試しましたが全部だめでした。
他にiアプリのstarに対応した方法があれば教えてください。
【試した事】
『変数 == 比較対象』を使って比較
『変数.equals(比較対象)メソッド』を使って比較
『変数 instanceof 参照型のクラス』を使って比較
『変数.getClass().getName() == 比較対象』を使って、名前として比較
-------------------------
【実験内容と結果】
int num = 1;
という変数があるのを前提としています。
-------------------------
■『変数 == 比較対象』を使って比較
if(num == int)
↓エラーメッセージ↓
'.class' がありません。
if(num == int){
^
-------------------------
■『変数.equals(比較対象)メソッド』を使って比較
if(num.equals(int))
↓エラーメッセージ↓
'.class' がありません。
if(num.equals(int)){
^
-------------------------
■『変数 instanceof 参照型のクラス』を使って比較
if(num instanceof int)
↓エラーメッセージ↓
予期しない型
検出値 : int
期待値 : 参照
if(num instanceof int){
^
予期しない型
検出値 : int
期待値 : クラスまたは配列
if(num instanceof int){
^
-------------------------
■『変数.getClass().getName() == 比較対象』を使って、名前として比較
if(num.getClass().getName() == "int")
↓エラーメッセージ↓
int は間接参照できません。
if(num.getClass().getName() == "int"){
^
-------------------------
検証の結果、『int』はプリミティブ型であり、クラスでは無いので比較対象として成立しない、という事らしいです。
つまり、プリミティブ型の値が代入された変数の型を検出する方法が知りたいのです。
よろしくおねがいします。
お礼
すみません自己解決しました。 こうする事にしました。 test( new Integer(50) ); public void test(Object obj){ if(obj instanceof Integer){ Integer num = (Integer)obj; System.out.println(num.intValue()); }
補足
ご回答ありがとうございます。 何がしたいかというと、ご指摘の通りですが、Object型を引数にとるメソッドにintを指定して呼び出してから、内部処理で、 『数値なら~』、『nullなら~』、など処理を分岐させたいんです。 エラーにならない書き方を教えてください。 ↓具体的には、こんな感じです。↓ public void test(Object obj){ if(objが数値なら){ //処理 }else if(objがnullなら){ //処理 } } ------------------------------ test(1); ------------------------------ としたいのですが、エラーが2つ。 ■Object型の引数にintを指定できないエラー。 test(java.lang.Object) (SceneMainGame 内) を (int) に適用できません ------------------------------ ■instanceofの右側に、『int』を指定できないエラー。 予期しない型 検出値 : int 期待値 : クラスまたは配列 ------------------------------