在 Java/Groovy 中,afaik,必须在相应的文件夹中定义一个包。这导致存储在 /a/b/c
中的所有类文件都以 package a.b.c
行开头。这还有必要吗?关于约定优于配置,这不是 DRY...
如果这个包定义是可选的,会出现什么样的问题?
最佳答案
虽然目录结构与包结构相匹配是常规做法,如果不匹配会出现某些问题,但实际上并不要求它们匹配。 Java 也是如此(尽管很多人没有意识到这一点)。
下面是一个例子来说明这一点。
groovydemo $ mkdir classes
groovydemo $
groovydemo $ cat src/groovy/com/demo/SomeClass.groovy
package com.somethingotherthandemo
class SomeClass {}
groovydemo $
groovydemo $ groovyc -d classes/ src/groovy/com/demo/SomeClass.groovy
groovydemo $ find classes -type f
classes/com/somethingotherthandemo/SomeClass.class
关于grails - 为什么我们仍然在 Groovy/Grails 中使用 package 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397636/