标题:java小白上路,有个接口和策略模式的小疑问
只看楼主
wyh416
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2020-10-9
结帖率:33.33%
 问题点数:0 回复次数:0 
java小白上路,有个接口和策略模式的小疑问
我的任务是两个数的各种操作,可以用一个方法一起实现
开始我写了一个接口,,,写了多个实现类,在最后的测试单元中,我首先写了一个可以统一实现的方法,在策略模式的时候很成功,学这个的最终目的是为了掌握&表达式,将写的代码不断简化,我写的方法要用接口对象,我将之改写成了内部接口,在调用的时候出现了一些问题,之前写的实现类用不了了,一应该是我的定义对象有问题,不知道怎么解决,希望有经验的大佬指点一下!
public class OperatorTest {
    public static interface Operator {
        public int opt(int i, int j);
    }
   

    //策略模式
    public static void main(String[] args) {

        OperatorTest ot = new OperatorTest();
        int result;
        int i = 5;
        int j = 4;
        result = ot.operator(i, j, new Sumadd());
        System.out.println(result);
        result = ot.operator(i, j, new SumSubtract());
        System.out.println(result);
        result = ot.operator(i, j, new AddSquare());
        System.out.println(result);
        result = ot.operator(i, j, new SubtractSquare());
        System.out.println(result);
        result = ot.operator(i, j, new Sumpow());
        System.out.println(result);
    }

    public static int operator(int i, int j, Operator operator) {
        return operator.opt(i, j);
    }
}



报错: result = ot.operator(i, j, new Sumadd());
'operator(int, int, www.sc.javase.demo1101.pac03.OperatorTest.Operator)' in 'www.sc.javase.demo1101.pac03.OperatorTest' cannot be applied to '(int, int, www.sc.javase.demo1101.pac03.Sumadd)'

idea显式 op.operator后面括号中new Sumadd()下有红线
搜索更多相关主题的帖子: 接口 result int new Operator 
2021-11-02 17:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507363-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021101 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved