Consumer默认实现中使用this出现的问题(未解决)

Consumer 接收一个泛型T,不返回值。
不知道为什么这样使用会报错
new IThisImpl().forEach1((IThisImpl t) -> t.getone());
但是分开写的话就可以,

Consumer<IThisImpl> action = (t) -> t.getone();
new IThisImpl().forEach1(action);

public interface IThis<T> {

    default void forEach1(Consumer<IThisImpl> action) {
        Objects.requireNonNull(action);
        //默认实现  中使用 的this是实现的this对象  这里是IThisImpl对象
        action.accept((IThisImpl) this);
    }
}




    List list = new ArrayList();
    public IThisImpl(){
        list = Arrays.asList("tom","jack");
    }
    public int gettwo(){
        return 2;
    }
    public void getone(){
        System.out.println((String) list.get(0));
    }
    @Test
    public void test() {
        //
        Consumer<IThisImpl> action = (t) -> t.getone();
        new IThisImpl().forEach1(action);
        //(IThisImpl t) -> t.getone()
//        new IThisImpl().forEach1((IThisImpl t) -> t.getone());
//        new IThisImpl().getone();
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,951评论 19 139
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,276评论 9 118
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,031评论 0 3
  • 刚刚拒绝了一个追求者,爱情并不是一个人的事情,不喜欢就不要去勉强,伤害了谁都不好,勿忘心安
    嵩家小恋Vcn阅读 193评论 0 0