问题描述
- 一个接口,有多个实现类,在使用这个接口的时候,如何判断用的是哪个实现类。
-
今天读程序的时候,突然遇到的问题。hibernate的Session接口,查看文档发现它被4个类实现了,所以就有疑问,当我开始调用Session中的方法时,它到底是被哪个实现类所实现的?
解决方案
调用getClass方法,会返回对应的类名。
解决方案二:
调用的Session时,它的实例肯定是指定到了一个具体的实现类的,就跟Spring的依赖注入一样
解决方案三:
给接口定义一个protected的enum。实现类去赋值enum,.用的时候判断enum就知道是哪个实现类了。或者getclass(),就知道是哪个类了。
时间: 2024-10-08 14:30:50