gpt4 book ai didi

grails - 使用 javac 编译时出现编译错误

转载 作者:行者123 更新时间:2023-12-02 15:57:11 24 4
gpt4 key购买 nike

我有一个正在尝试编译的 grails 项目。
编译项目的源文件后,编译总是以错误告终。我在使用 javac 编译期间出现“编译错误”堆栈跟踪,它返回了关于 11 个类的 11 个错误。

她是11个错误之一:

d:\Profiles\jMichel\AppData\Local\Temp\groovy-generated-937113616033442252-java-source\fr\myProject\blockA\FicheClassA.java:683: error: getConstraints() in FicheClassA cannot override getConstraints() in AbstractBaseEntity
public static java.lang.Object getConstraints() { return null;}
^
return type Object is not compatible with Map

仅供引用,所有这 11 个类都相互关联(belongsTo 或 hasMany 或其他类型的链接),并且继承自 AbstractBaseEntity 类。

这是 AbstractBaseEntity :
    @Validateable
abstract class AbstractBaseEntity {
transient springSecurityService

Date dateCreation
String loginCreation
Date dateMaj
String loginMaj
Boolean archive = false

static mapping = {
tablePerHierarchy false
dateCreation column: 'DATE_CREATION'
loginCreation column: 'LOGIN_CREATION'
dateMaj column: 'DATE_MAJ'
loginMaj column: 'LOGIN_MAJ'
archive column: 'ARCHIVE'
}

static constraints = {
dateCreation nullable: true
loginCreation nullable: true
dateMaj nullable: true
loginMaj nullable: true
archive nullable: true
}

def beforeInsert = {
dateCreation = new Date()
loginCreation = springSecurityService?.principal instanceof String ? springSecurityService.principal : springSecurityService?.principal?.username
}

def beforeUpdate = {
dateMaj = new Date()
loginMaj = springSecurityService?.principal instanceof String ? springSecurityService.principal : springSecurityService?.principal?.username
}

}

最佳答案

您的 Groovy 类(class) AbstractBaseEntity定义了一个名为约束的静态闭包属性。它的定义如下:

static constraints = {
dateCreation nullable: true
loginCreation nullable: true
dateMaj nullable: true
loginMaj nullable: true
archive nullable: true
}

编译 Groovy 类时,Groovy 编译器会为约束属性添加 getter/setter 方法。
  • 静态对象 getConstraints()
  • 静态无效 setConstraints(对象)

  • Java 类 FicheClassA继承自 Groovy 类 AbstractBaseEntity并添加方法 static java.lang.Object getConstraints() .由于 Groovy 和 Java 允许在同一个类中存在具有相同名称和参数的两个方法(不同的返回类型不计算在内),因此结果是编译器错误。

    我不知道为什么Java编译器坚持返回类型 AbstractBaseEntity.getConstraints()Map .应该是 Object .您可以尝试将其更改为 MapFicheClassA .

    关于grails - 使用 javac 编译时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33010378/

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