Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止使用依赖包的某些API_Java_Api_Unit Testing - Fatal编程技术网

Java 防止使用依赖包的某些API

Java 防止使用依赖包的某些API,java,api,unit-testing,Java,Api,Unit Testing,我们有一些第三方软件包的代码包装API,现在我们不希望我们的团队成员错误地直接使用第三方软件包,有什么方法可以防止它?(例如添加某种签入UT)。例如: 第三方软件包中的代码(因此我们无法更改): 我的软件包中的代码(我们需要第三方软件包): 在我们的代码中,如果有人错误地使用了OrigProvider.getSomething,那么我们的程序将在无声中出错,那么如何保证没有人使用OrigProvider.getSomething 提前谢谢 丑陋的解决方案之一是运行静态代码分析器,并在代码中查找另

我们有一些第三方软件包的代码包装API,现在我们不希望我们的团队成员错误地直接使用第三方软件包,有什么方法可以防止它?(例如添加某种签入UT)。例如:

第三方软件包中的代码(因此我们无法更改):

我的软件包中的代码(我们需要第三方软件包):

在我们的代码中,如果有人错误地使用了
OrigProvider.getSomething
,那么我们的程序将在无声中出错,那么如何保证没有人使用
OrigProvider.getSomething


提前谢谢

丑陋的解决方案之一是运行静态代码分析器,并在代码中查找另一个库的包的
import
语句(当然,包装库的代码除外)。如果将它作为一个测试,那么每次有人直接使用该库时,它都会失败。您可能还可以将包装第三方库的API的代码封装到单独的模块中,并使您的主代码库仅依赖于该模块,而不依赖于第三方库one@AlexeySubach,静态代码分析器有点太复杂了,尽管它应该可以工作,但一个丑陋的解决方案是运行静态代码分析器,并在代码中查找另一个库的包的
import
语句(当然,包装库的代码除外)。如果将它作为一个测试,那么每次有人直接使用该库时,它都会失败。您可能还可以将包装第三方库的API的代码封装到单独的模块中,并使您的主代码库仅依赖于该模块,而不依赖于第三方库one@AlexeySubach,静态代码分析器有点太复杂了,虽然它应该是有效的。
class OrigProvider {  
    public static String getSomething() { return sth;}
}
class MyProvider {  
    public static String getSomething() {  
        sth = OrigProvider.getSomething;   
        process(sth);   
        return sth;  
    }  
}