最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Java中获得变量的类型

Java crifan 3136浏览 0评论

【背景】

折腾:

【记录】antlr异常处理:在ParseTree去getTree之后,判断某个树节点是否出现异常

期间,需要去在java代码运行期间,获得一个变量的类型是什么。

 

【折腾过程】

1.参考:

How know a variable type in java?

去试试。

最后是通过如下代码:

			ParseTree parseTreeVaraibleBodyClassValueSingleCommonClass = (ParseTree) parseTreeVaraibleBodyClassValueSingleCommon.getChild(0);
			Class classValue = parseTreeVaraibleBodyClassValueSingleCommonClass.getClass();
			System.out.println("classValue=" + classValue);
			String className = classValue.getName();
			System.out.println("className=" + className);
			
			Object objPayload = parseTreeVaraibleBodyClassValueSingleCommonClass.payload;
			String payloadClassName =objPayload.getClass().getName(); 
			System.out.println("payloadClassName=" + payloadClassName);
			
			boolean isException = false;
			isException = objPayload instanceof RecognitionException;
			System.out.println("isException=" + isException);

可以获得当前变量类型,且可以判断是否是属于某个类型的(异常)

输出为:

classValue=class org.antlr.runtime.tree.ParseTree
className=org.antlr.runtime.tree.ParseTree
payloadClassName=org.antlr.runtime.MismatchedSetException
isException=true

如图:

java get type check type

 

 

【总结】

java中,获得变量的类型用:

Class classValue = xxx.getClass();
System.out.println("classValue=" + classValue);

再获得类型的名字,用:

String className = classValue.getName();
System.out.println("className=" + className);

判断是否是某个类型用:

boolean isSomeType = false;
isSomeType = someVariable instanceof SomeTypeToCheck;
System.out.println("isSomeType=" + isSomeType);

即可。

转载请注明:在路上 » 【已解决】Java中获得变量的类型

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.186 seconds, using 22.11MB memory