对不起,我是一个时髦的新手,显然只是没有得到它,但是 请有人解释为什么我在编译时会遇到这些错误 以下代码:
tc.groovy:
class t
{
int v;
t() { v = 1; }
}
class tt
{
static void main(String[] args)
{
t v = new t();
}
}
$ groovyc tc.groovy
org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:
tc.groovy:11:表观变量' v'在静态范围内找到但没有引用局部变量,静态字段或类。可能的原因:
您试图引用绑定中的变量或静态上下文中的实例变量。
您错误拼写了一个类名或静态导入的字段。请检查拼写。
您试图使用某种方法' v'但是在语法不允许的地方遗漏括号。
@ line 11, column 12.
t v = new t();
^
1错误
我想要做的就是编译一个groovy程序,它声明了2个类,一个带有main()方法,需要实例化另一个类的实例。有没有办法在groovy中这样做?
答案 0 :(得分:1)
将您的类名大写为T,更改构造函数以匹配,它将起作用。 Groovy要求类型名称以大写字母开头。
这与Java不同。在Java中,没有硬性要求类名必须大写,它只是一个约定。在Groovy中,它不仅仅是一种约定,语言的语法假定所有类都以大写字母开头。
答案 1 :(得分:0)
t v = new t();
到
def v = new t();
它编译。</ p>
但是我知道我想要创建一个实例的类:&#39; t&#39;
是不是可以在groovy中创建指定类的实例?
答案 2 :(得分:0)
问题仅发生在任何用户定义的类上 - 即:
class c {}
...
c v = new c();
会产生错误,而:
String v = new String();
不会。
我猜这是一个时髦的错误 - 我会把它作为一个报告。