当前位置: 首页 > 面试题库 >

找不到哪种方法 ()在groovy闭包中从newInstance上的此列表调用

林元明
2023-03-14
问题内容

我正在学习groovy,并且尝试使用所有字段的默认值动态初始化我的类。因此,我要进行的工作是,获取所有属性的列表并获取该对象的类型并创建该类型的对象,但是执行时出现错误newInstance

Exception in thread "main" org.codehaus.groovy.runtime.metaclass.MethodSelectionException: Could not find which method <init>() to invoke from this list:
  public java.lang.Boolean#<init>(boolean)
  public java.lang.Boolean#<init>(java.lang.String)
    at groovy.lang.MetaClassImpl.chooseMethodInternal(MetaClassImpl.java:3160)
    at groovy.lang.MetaClassImpl.chooseMethod(MetaClassImpl.java:3097)
    at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1707)
    at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1526)

下面是代码

public static void init() {
        Position position1 = new Position();

        JXPathContext context = JXPathContext.newContext(position1)
        context.createPathAndSetValue('id', '2')

        position1.properties.each { Map.Entry entry ->
            String propertyName = entry.key;
            if (!propertyName.equalsIgnoreCase('class')) {
                Class clazz = position1.class.getDeclaredField(propertyName)?.type
                println "$clazz"
                Object ob = clazz.newInstance()
            }

        }
        Identifier sourceSystemPositionId = new Identifier()

        context.setValue('sourceSystemPositionId/content', 'default-content')
        context.setValue('sourceSystemPositionId/domain', 'default-domain')

        println "$position1"
    }

问题答案:

查看Java文档的java.lang.Boolean。如您在本节中所看到的,Constructor Summary该类没有no-arg构造函数(这就是异常消息所说的)。您必须:

  • booleanString参数调用它(构造函数)
  • 使用布尔值的默认值-这是 false
  • Boolean.FALSE或初始化值Boolean.TRUE


 类似资料:
  • 我目前正在尝试为Android模拟(然后构建)和Ionic应用程序(带Angular)。我觉得有必要先说我不是Android开发者,这是我第一次不得不设置环境,所以我为任何“明显”的错误或错过的步骤道歉。 我无法克服这个错误(在运行后出现): 当我尝试构建我的项目或同步Gradle时,我在Android Studio中收到类似的消息: 我的文件中失败的行如下所示: 对于上下文,我有: 下载了And

  • 除了去掉“D”之外,有没有办法。从第一个查询开始,使第一个代码段不抛出错误消息? 以下是源代码:

  • 本文向大家介绍groovy 将方法转换为闭包,包括了groovy 将方法转换为闭包的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用&运算符将方法转换为闭包。            

  • 问题内容: 我收到以下错误:org.postgresql.util.PSQLException:在此ResultSet中找不到列名usuario。 但是,我在适当的类中正确声明了以下usuario列! UsuariosGruposDAO.class UsuariosGrupos.class 错误出现在以下行: 我的List方法: 奇怪的是,当我分别测试我的列表时,数据表会显示适当的结果。但是,当我

  • 本文向大家介绍groovy 调用方法,包括了groovy 调用方法的使用技巧和注意事项,需要的朋友参考一下 示例 请注意,如果在某些元素上不存在该方法,则在集合中混合类型时,groovy.lang.MissingMethodException可能会引发a: