見出し画像

【Console Application】基本文法 23【学習記】

制御構造if,switch,tryとか特殊な演算三項演算子,ビット,論理,算術関数とかそういう手合の話🤤

Q.
プリミティブ判定はやらないの?
A.
一応 Object にキャストすれば判定自体はできると思うけど…🙄

→限定的だが型指定は "?" のワイルドカードが使え instanceof Map<?,?> だとか instanceof list<?> みたいな書き方が有る模様☺️

#学習記 #Java
#instanceof #ワイルドカード

基準のコードはこちら

【Console Application】基本文法 19【学習記】
https://note.com/sayka/n/n924beb3da425


Java の typeof とか instanceof

さて、それじゃ Java で型判定のとこやろうかな🤤
とりあえず typeof と instanceof を引いてみようかな🤔

Java typeof 演算子
https://www.delftstack.com/ja/howto/java/typeof-in-java/
Javaで型を判断するinstanceof 基本や考え方、応用までズバリ解説!
https://www.bold.ne.jp/engineer-club/java-instanceof

………🤔

Java には typeof は無いっぽい。代わりに getClass なるものが有る様だけど…🤔
getClass とやらも instanceof もプリミティブは判定できない…のかな?🙄

………

↓ null 判定
↓ Object 判定
↓ Object に突っ込む
↓ instanceof

かな?🤪たぶん


【 Java 】変数種別判定クラス

ではれっつとらい試してみるべ🤤

画像1

乗っけからつまづく🤪
なんでもで受けるには Object しか無理😞
まぁ、変な判定挟むより簡単なのかな…
問題は受け側が Object の時にプリミティブを投げられるのか、なのよね🤔
今回の状態だと Object ではない、つまりプリミティブを渡す場面が無いので確認できなそうだけどそのうちプリミティブを投げる試験もやろうかな🤤🚩

して、 Java は別名エイリアスはどうやるんだろ?🙄

もしかして、 Java にはエイリアス、無い?🙄
まぁいいや🤤
配列は先の記事に書いてあるけど Map はどうなんだろ?🤔

Java 14におけるinstanceofのパターン・マッチング
https://blogs.oracle.com/otnjp/post/pattern-matching-for-instanceof-in-java-14-ja
void processChildNode(Tree tree) {
	if (tree.getChildNodes() instanceof Map<?, Node> childNodes
				&& childNodes.size() == 1
				&& childNodes.get("root") instanceof LetterNode letterNode) {
		System.out.println(letterNode.isLatin());
	}
}

ん?なんか正体不明のコーディングが載ってるぞ?🤔
「?」って指定してもいいの?🙄

【Java・ジェネリックス】ワイルドカード型とは何か【前半】
https://thekingsmuseum.info/entry/2016/04/02/155821

使い方は限られるけど…ジェネリックと言っているという事はプリミティブも取れるのかな?

画像2

まぁ流石に Any 的な引数指定は無理っぽ🤤

画像3

Map の判定は大丈夫そう☺️

画像4

Java は Map を判定できるので Object は掛からなくていいかな🤤


次回は

compressTypeString() のコード書き換えしたけど enum メソッドに入ってるからそこ入れ替えたら動作確認かな🤤

この記事が気に入ったらサポートをしてみませんか?