springboot项目工具类,只允许在本工具类使用,使用dependency禁止引入
时间: 2023-12-04 14:03:30 浏览: 23
您好,可以通过在工具类上加上`final`关键字和`private`构造方法来禁止其他类继承该工具类。同时,您可以使用类级别的`ClassLoader`来限制该工具类的使用范围。
具体操作可以参考以下代码:
```java
public final class MyUtils {
private MyUtils() {
throw new AssertionError();
}
public static void doSomething() {
// your code here
}
static {
ClassLoader classLoader = MyUtils.class.getClassLoader();
if (classLoader != null) {
String className = MyUtils.class.getName();
throw new IllegalStateException("Forbidden to load class " + className + " by " + classLoader);
}
}
}
```
这段代码中,`MyUtils`类的构造方法被私有化了,其他类无法继承该类;同时,在静态代码块中,我们判断了当前`MyUtils`类的`ClassLoader`是否为`null`,如果不为`null`,则说明有其他类尝试加载该类,此时会抛出`IllegalStateException`异常,从而阻止了其他类的使用。