一个很高深的问题
有两套协议包,一套叫1.0,另一套叫2.0
1和2的区别,最明显的区别是分成了不同的包了,比如说 Test类,1.0在 com.common下面,但是2.0在com.common.test下面。相当于有一些类放到了不同的包里面。
写一个程序
public class TestDemo{
public void test(){
Test t = new Test();
}
}
能够根据使用的协议版本来引用不同版本的Test类吗?
Java没有C一样的引用不同的头文件的概念,各位有没有好的办法。
目前能想到的就是,建一个代理类,程序里面实际使用的是这个代理类,代理类可以根据协议版本来反射出来同版本的实际类,并代理里面的所有方法。这样写起来会比较麻烦。 这种情况只能用反射了
[解决办法]
有点奇怪 你的test类在2套包里面的路径不一样 不能区分么
[解决办法]
还有你为什么搞2套包 取同一个名字这么蛋疼 用抽象试试呢
[解决办法]
对了,加完全限定名行不行?com.common.test.Test t = new com.common.test.Test();
[解决办法]
if (协议1) {
Test t = new com.common.Test();
} else
if (协议2) {
Test t = new com.common.test.Test();
{
这样的话,每个用到的地方都要判断。。而且会有N多if else的,嘿嘿。我只是举了个例子,其实引用的地方还是挺多的。