当前位置: 首页 > 知识库问答 >
问题:

从另一个函数调用一个函数时非法转发引用java 11函数接口

杨柏
2023-03-14
@Getter @Setter
Class Row{
  private int position;
  private String name;
  private List<Column> columns;
}

@Getter @Setter
Class Column{
  private int position;
  private String name;
  private String description;
}

@UtilityClass
class CsvUtils{

   public Function<Void, Row> getCsvRow = (nothing) -> {
        Row row = new Row();
        row.setPosition(1);
        row.setName("Student Details");

        // CE : Illegal forward reference
        List<Column> columns = getCsvColumn.apply(null);
        row.setColumns(columns);
        return row;
    };

    public Function<Void, Column> getColumn = (nothing) -> {
       Column csvColumn = new Column();
       csvColumn.setPosition(1);
       csvColumn.setName("Marks");
       return csvColumn;
    };
}

在从getCsvRow调用getCol列时,获取非法转发引用的CE。列表列=getCsvColumn.apply(null);

需要你的帮助来解决这个问题。

我知道的一种方法是将函数接口转换为java方法,然后我可以从"getCsvRow"调用方法"getCol列"

寻找其他解决方案

共有1个答案

唐威
2023-03-14

getCsvRow

引用Java语言规范:

如果以下所有条件均为真,则为编译时错误:

  • 类或接口C中类变量的声明在使用类变量后以文本形式出现;

编译器告诉您,您正在尝试在声明函数getCol列之前使用它。

任何变量都应该在使用该变量的代码上方声明。您应该交换函数的顺序。

除了名称中随机出现的Csv前缀导致的混乱之外,还不清楚如何将结果返回生成对象的函数分配给列表

此外,使用一个带有空参数的函数也没有多大意义。

 类似资料:
  • 问题内容: 我有以下函数,可用于从我的代码中调用Lambda函数。 但是,当我尝试在Lambda函数中使用它时,出现以下错误: 如何从Lambda函数中调用Lambda函数? 我的功能: 问题答案: 使用每个Lambda中都提供的,从另一个Lambda函数中调用Lambda函数非常简单。 我建议首先从 简单的 事情开始。 这是lambda内调用的“ Hello World”: 使用包含一个参数的调

  • 问题内容: 表: 有了答案,我在这里得到了利用$ compile的这种方式 现在,当单击按钮时,我什至调用一个模态,并命令对象使用ng-model 感谢您的帮助,它运作良好。 问题答案: 编辑 :添加了用于演示 $ compile 用法的代码段 在html中,只有一个用于初始化应用程序的标签和一个用于初始化控制器的div。 在controller中,两个链接被创建为简单字符串,但分别具有两个,然后

  • 我正在使用Azure函数V1 c#。我有一个时间触发的azure函数,它每秒都在检查我的数据库中的一些数据。如果找到了数据,我想对它执行一些操作。此操作可能需要30秒到5分钟的时间,具体取决于其上发生的操作。 > 当我的时间触发函数获取数据并开始对其执行操作时。在第一个操作完成之前,时间触发的函数不会再次执行。因此,即使时间触发函数被安排为每秒执行一次,如果上一次迭代中的操作花费了 30 秒,则在

  • 问题内容: 我可以在python3.2的全局范围内调用嵌套在另一个函数内的函数吗? 这是从外部func1()调用func2()的一种方法吗? 问题答案: 否,除非您返回该函数: 甚至

  • 问题内容: 我无法从另一个类Menu.swift调用GameViewController.swift中的函数。我这样调用该函数: 这是我要调用的函数: } 我在菜单类内的GameViewController.showLeaderboard()行中出现编译器错误“调用中的参数#1缺少参数”,但我不理解编译器期望的参数类型,因为我不需要任何声明就声明了该函数参数。 谢谢 问题答案: 在您定义为方法而不

  • 我正在创建一个应用程序,它有一个开始按钮(类StartButton),我希望该按钮调用另一个类(类NewRide)的方法,但是我如何从另一个文件调用void函数呢? 这是New Ride类,它具有我想在按下开始按钮时调用的空函数。