关于类名大小写引发的MissingPropertyException错误

来源:互联网 发布:阿里云机房 编辑:程序博客网 时间:2024/05/24 06:13

之前就听说过在写类名时候要主要大写,一直也按照规矩来,今天写代码时无意中写成类名首字母小写带出了MissingPropertyException的异常,截图在下。

(1)修改前:类名首字母小写——代码段的情况


(2)修改前:类名首字母小写——包的情况


(3)修改前:类名首字母小写——引出的MissingPropertyException异常


(4)修改后:类名首字母大写——代码段的情况正常


(5)修改后:类名首字母大写——包的情况正常



总结:从上面我们可以看到,小写的类名首字母会引发MissingPropertyException异常,需要在今后的编程中注意。

PS:有哪位大神可以回复讲解一下这是什么原理啊?万分感谢!

----------------------------------------------------------------------------------------------------------------------------

续:关于这个类名大小写引发的MissingPropertyException问题的个人见解解析

后来研究了一下,发现应该是设定为groovy项目引发的问题,因为groovy和java对类的识别机制是不同的。

下面写了很小的demo来让程序将这个问题表现出来:

(1)java项目中的代码以及输出


(2)java项目中的包的情况


(3)groovy项目中的代码


(4)groovy代码中的包的情况


总结:虽然我没有完全清晰的理解java和groovy对类名的判断机制到底有什么不同,但是通过demo可以清楚的看到,就连java项目中可以编译执行的myJavaClass也由于类名的首字母小写,导致无法在groovy中获得合法编译。目前看到的材料说,首字母小写的类名会被groovy视为变量而不是类,所以出现图(3)中的“myJavaClass jc2 =new myJavaClass();”中的第一个myJavaClass被视为变量,所以不满足语法且报错,而new后面的明显被声明为类的myJavaClass可以找到并且被识别为类。

留在这里,以后进一步学习。



0 0