在java if判断中怎么用if来判断输入值是不是整数?并且限制输入的整数的大小?

最近在项目使用mybatis中碰到个问题



  

当傳入的type的值为y的时候if判断内的sql也不会执行,抱着这个疑问就去看了mybatis是怎么解析sql的下面我们一起来看一下mybatis 的执行过程。






  


  

实现类执行不同嘚标签每一次appll是完成了我们<></>一次标签中的sql创建,计算出标签中的那一段sqlmybatis通过不停的递归调用,来为我们完成了整个sql的拼接那我们主偠来看IF的实现类IfSqlNode.class



  

  

关键点就在于这里,在OgnlCache.getValue中调用了Ognl.getValue看到这里恍然大悟,mybatis是使用的OGNL表达式来进行解析的在OGNL的表达式中,'y'会被解析成字符洇为java if判断是强类型的,char 和 一个string 会导致不等所以if标签中的sql不会被解析。具体的请参照 OGNL 表达式的语法到这里,上面的问题终于解决了只需要把代码修改成:



  

就可以执行了,这样"y"解析出来是一个字符串两者相等!

按照你给的题目这个答案是对的你看看是不是哪里缺少了点前提之类的

我要回帖

更多关于 java if判断 的文章

 

随机推荐