[解決済み] Java 8におけるtypeof
2022-03-02 23:58:36
質問
javascriptで変数のデータ型を確認したい場合、以下のようにします。
typeof
演算子を使用します。
次のスニペットを考えてみましょう。
var c = 'str' ;
console.log(typeof(c)); // string
c = 123 ;
console.log(typeof(c)); // number
c = {} ;
console.log(typeof(c)) ; // object
で同じ機能を実現したい。
Java 8
. Java には typeof 演算子がありませんが、typeof 演算子には
instanceof
演算子で型をチェックします。
System.out.println("str" instanceof String); // true
Integer a = 12 ;
System.out.println(a instanceof Integer);
Float f = 12.3f
System.out.println(f instanceof Float); // true
これ以上のものはないだろう?プラス
instanceof
はプリミティブ型をサポートしていません。
でのアプローチはあるのでしょうか?
java 8
? 何か関連するアプローチがあれば、教えてください。
どのように解決するのですか?
を使用することができます。
getClass()
メソッドを使用して、使用しているオブジェクトの型を取得します。
Object obj = null;
obj = new ArrayList<String>();
System.out.println(obj.getClass());
obj = "dummy";
System.out.println(obj.getClass());
obj = 4;
System.out.println(obj.getClass());
これによって、次のような出力が得られます。
class java.util.ArrayList
class java.lang.String
class java.lang.Integer
ご覧の通り、変数が参照しているオブジェクトの型が表示されます。これは、変数の型と同じではないかもしれません (
Object
この場合)。
プリミティブ型については、変数に格納されている型を知るという問題が存在しないため、利用可能な解決策はありません。プリミティブ型の変数には
のみ
の値は、その型の値です。変数(またはパラメータ)をどこかで定義しなければならないので、その型と保持できる値はすでに分かっているはずです。プリミティブな値には、quot;base" という型はありません。
Object
型は、Javaのすべてのオブジェクトの基本型です。
関連
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6