Discuss / Java / 那么使用lambda也算很明显的转换器了,只是转换器是一次性的

那么使用lambda也算很明显的转换器了,只是转换器是一次性的

Topic source
public class Main {
    @Test
    void test1() {
        Callable<Long> a=new A();
        Thread thread=new Thread(() -> {
            try {
                a.call();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        });
        thread.start();
    }
}

class A implements Callable<Long>{
    @Override
    public Long call() {
        return 123L;
    }
}

从某种程度上说,这确实可以被看作是一种简单的转换器思想,通过实现 Runnable 接口,将 Callable 接口的 call 方法转换成了 Runnable 接口的 run 方法,使得原本的 Callable 对象 a 可以在 Thread 中被使用。

虽然这种用法不是传统意义上的转换器模式,但从某种程度上可以看作是一种类似的思想,即通过接口或类的适配来实现不同对象之间的协同工作。

如果不局限与接口或类的适配,那么实例化类也沾点转换器思想,因为将数据整合“转换“为了类实例。

向上转型和向下转型在某种程度上也可以被视为适配器思想的一种体现。向上转型是指将子类对象转换为父类对象的过程,这样做可以使得子类对象可以被当做父类对象对待,从而实现多态性。这种转型可以被看作是一种接口的适配,将子类对象适配成了父类对象。

向下转型是指将父类对象转换为子类对象的过程。这种转型可能涉及到类型检查和转换,以确保父类对象确实可以被转换为子类对象。向下转型也可以被视为一种适配器思想,将父类对象适配成了子类对象,以便对其进行特定的操作或方法调用。


  • 1

Reply