【问题标题】:I get the error: The target type of this expression must be a functional interface我收到错误:此表达式的目标类型必须是函数式接口
【发布时间】:2014-11-04 15:59:09
【问题描述】:

我是 java 新手,但我在最近的作业中遇到了很多问题(使用 6 种不同的方式创建矩阵)。无论如何,我似乎无法弄清楚如何解决这个问题: 我们应该使用 3 行的记录来实现一个 3x3 矩阵;每行应该是 3 列的记录。其中输入是一个由 9 个元素组成的数组,表示矩阵行。 我不断收到错误“此表达式的目标类型必须是功能接口” 对于 mat = new Row3(​​long [] array);部分代码

public class Matrix3x3rc 
{

    private Row3 mat;

    private class column3
    {
        final long var1;
        final long var2;
        final long var3;

        private column3(long value1, long value2, long value3)
        {
            this.var1 = value1;
            this.var2 = value2;
            this.var3 = value3;
        }
    }

    private class Row3
    {
        final column3 row1;
        final column3 row2;
        final column3 row3;

        private Row3(long [] array)
        {
            this.row1 = new column3(array[0],array[1],array[2]);
            this.row2 = new column3(array[3],array[4],array[5]);
            this.row3 = new column3(array[6],array[7],array[9]);
        }
    }

    public Matrix3x3rc(long [] array ){
        mat = new Row3(long [] array);

【问题讨论】:

  • 另外,我想知道如何分配一个值来解决这个问题?长 [][] 原始 = 垫子; ——

标签: java matrix inner-classes


【解决方案1】:
mat = new Row3(long [] array);

应该是

mat = new Row3(array);

当您调用方法(或构造函数)时,您不必指定要传递的参数的类型。

【讨论】:

  • 另外,我想知道我该如何分配一个值来解决这个问题?长 [][] 原始 = 垫子;
  • @MOSTAFAOKASHA 我看不到您在哪里有long [][] original = mat; 之类的语句,但它不起作用,因为mat 是Row3 类型,它不是一个数组。你想做什么?
  • 我想让另一个变量等于 mat 以便我可以以相同的格式将值存储在其中...我认为 mat 是类型数组?有没有办法通过稍微更改代码来做到这一点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多