这是垃圾 Kotlin 的新特性吗?
zhangyy_owen
#9
你可以试试把两个类名的顺序换一下,就会得到相反的情况,所以这个是编译器对类名的限制,就像你在Windows同个目录下,无法创建大小写差别的同名文件,比如a.txt和A.txt会被认为是同一个文件。而且这个不仅仅是Kotlin中有这个问题,Java也有这样的问题
zhangyy_owen
#10
这个要提醒你一点,这个其实不是Kotlin或者Java的问题,而是Windows的问题,因为在Windows中,文件名不区分大小写,在编译生成class文件的时候,先编译的那个类生成了类名的class文件(假如是Abc.class),后面编译的类,生成第二个类的class文件(ABC.class,这是理论上,实际上Windows文件名不区分大小写,会认为ABC.class文件已经存在,也就是ABC.class),所以会将ABC类的编译后写进了ABC.class文件中,你可以尝试在Linux中编译,将不会有你说的这个问题。以下是在Linux上执行的结果:
代码:
执行结果(并不会报错):
Desert
#15
文件系统的原因吧
mac下可以创建大小写敏感的文件系统,但是默认的首选是大小写不敏感
ntfs应该也是大小写不敏感的文件系统
如果在mac下编译过Android源码应该就可以知道了