gpt4 book ai didi

java - Java : how to change the path for an imported class 中的预编译器开关

转载 作者:行者123 更新时间:2023-11-30 09:43:50 25 4
gpt4 key购买 nike

我需要在两个不同的平台-SDK 上使用同一个类。

虽然类及其方法相同,但访问类的路径不同。在我需要使用的一台设备上:

导入a1.a2.类名

对于我需要使用的第二个设备:

导入 b1.b2.b3.类名

请不要问我为什么:SDK 不是我写的,我不能更改它们。

所以问题是:你会怎么做?有没有办法在不同的 sdk 版本上导入同一类的不同版本?

在 C++ 中,我会使用像这样的预编译器开关:

#ifdef SDK1
#include "path1/class.h"
#else
#include "path2/class.h"
#endif

你会如何在 java 中做到这一点?

请考虑我不能从该类派生,因为我只能访问它的接口(interface)并且方法的数量太多而无法考虑使用代理

最佳答案

您可以编写一个轻型代理层并使用 Class.forName() 检查哪些类可用。如果您的两个类(class)将来在签名等方面存在分歧,这就是您要走的路。

但是,如果您完全确定它们将始终保留相同的功能,那么只需在您的构建工具中搜索并替换所有相关导入实例即可。在 Maven 中你可以使用资源过滤,this question有一个例子。

关于java - Java : how to change the path for an imported class 中的预编译器开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com