gpt4 book ai didi

groovy - 执行groovy脚本时出错

转载 作者:行者123 更新时间:2023-12-02 07:17:37 24 4
gpt4 key购买 nike

代码如下:

class Book
{
private String title
Book (String theTitle)
{
title=theTitle
}
String getTitle()
{
return title
}
}
Book gina=new Book('Groovy in Action')
assert gina.getTitle()=='Groovy in Action'
assert getTitleBackwards(gina)=='noitcA ni yvoorG'
String getTitleBackwards(Book)
{
title=book.getTitle()
return title.reverse()
}

当我使用 Ctrl+R 执行时,出现以下编译错误。

1个编译错误:

Invalid duplicate class definition of class Book : The source Book.groovy contains at least two definitions of the class Book. One of the classes is an explicit generated class using the class statement, the other is a class generated from the script body based on the file name. Solutions are to change the file name or to change the class name. at line: 1, column: 1

有人可以解释一下这里发生了什么吗?

最佳答案

Book 类的重复类定义无效:

OP的代码 list 包含两部分:

  1. Book 类的类型定义
  2. 充当 Book 类型客户端的 Groovy 脚本

Groovy 将您的 *.groovy 文件视为脚本文件或类定义文件。脚本文件是包含不在类定义内的代码的文件。当 Groovy 编译脚本文件时,它会隐式创建一个类来保存您的代码,并且该隐式类会被赋予 Book.groovy 文件的名称。

然后,编译器将尝试为 groovy 脚本中定义的 Book 类创建一个额外的类 Book,这里会发生错误,因为现在实际上有两个 Book 类定义。

比较:Blog entry with code sample for this error message

在同一文件中定义 Book 类和客户端脚本的一种方法是重命名该文件,例如到 BookApp.groovy。注意:如果这样做,Book 类型只能从脚本文件中引用,groovy 不会自动找到 Book 类型,即使在类路径上找到了 *.groovy 文件。

关于groovy - 执行groovy脚本时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31511228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com