私はJavaが初めてですが、オブジェクトのタイプを伝えるJavaのメソッドはありますか?
たとえば、Pythonで次のように入力すると
type(34)
それは戻るだろうint
type('abc')
戻るだろうstring
私はどこでも探してきましたが、それを行う方法が見つかりません。何か助けはありますか?
どうもありがとう。
instanceof
演算子は、実行時の型チェックを行う最も手軽な方法です。
if (someObject instanceof String) {
// It's a string
}
または、任意のインスタンスで を使用できます。これにより、オブジェクトのタイプのインスタンスgetClass
が得られます。Class
Class c = someObject.getClass();
Class
インスタンスには、名前のgetName
文字列バージョンを取得するために呼び出すことができるメソッド (および他の多くの便利なメソッド) があります。
Class
を使用して型名からオブジェクトを取得できます.class
。例:
Class stringClass = String.class;
Peter Lawrey がコメントで指摘しているように、これらはすべて、プリミティブではなくオブジェクト参照を扱っていることを前提としています。プリミティブで実行時の型チェックを行う方法はありませんが、オブジェクト参照 (コンパイル時の宣言がどこにある可能性があるかObject
) とは異なり、宣言によってプリミティブ型が何であるかを常に知っているため、問題ありません。これが実際に現れるのはオブジェクトタイプだけです。
Java コードで多くの明示的な型チェックを行っていることに気付いた場合は、構造/設計の問題を示している可能性があります。ほとんどの場合、実行時に型をチェックする必要はありません。(もちろん例外もあります。)
Basically we can achieve our goal by using the method overriding
class GetType {
void printType(byte x) {
System.out.println(x + " is an byte");
}
void printType(int x) {
System.out.println(x + " is an int");
}
void printType(float x) {
System.out.println(x + " is an float");
}
void printType(double x) {
System.out.println(x + " is an double");
}
void printType(char x) {
System.out.println(x + " is an char");
}
}
public static void main(String args[]) {
double doubleVar = 1.5;
int intVar = 7;
float floatVar = 1f;
GetType objType = new GetType();
objType.printType(doubleVar);
objType.printType(intVar);
objType.printType(floatVar);
}