
@Service public class xxxImpl implements xxxService {
@Override public xxx xxxx() { } public static xxx() { } } 大概是这样子的情况
1 RedBeanIce 2021-03-11 18:05:22 +08:00 菜鸟一枚 表示没有感受到问题。最多就是对方法区占用了一点内存? 一般建议通过引入接口的 service 调用重写的的方法?? |
2 GeruzoniAnsasu 2021-03-11 18:09:15 +08:00 能有啥问题?? 光 static 咋看得出来 static 又不可能是接口方法 你又不描述这些 static 是干啥的 static plus 1+1 这种方法能有啥问题嘛 |
3 zm8m93Q1e5otOC69 2021-03-12 08:01:36 +08:00 static 中不能使用托管的 bean 啊,只能用 set 引入 bean 才行,可能对后来的维护有影响 |
4 erisfloralia OP @GeruzoniAnsasu 给其他方法调用的,比较通用的方法,所以他说用静态的方便给其他类调用 |
5 erisfloralia OP @beichenhpy 谢谢大佬解答 |
6 yazinnnn 2021-03-12 09:37:50 +08:00 你被 oop 脑控了 |
7 strong>javapythongo 2021-03-12 10:56:59 +08:00 没啥大问题吧,可能就这一个方法,又不好写到其它工具类里面 |
8 javapythongo 2021-03-12 10:58:31 +08:00 唯一的问题就是有点违反开闭原则了,调用者必须知道具体的接口实现类才行 |
9 gwybiaim 2021-03-12 11:15:02 +08:00 @RedBeanIce #1 无论是不是静态,只要类加载了,就会占方法区的内存。 |
10 gwybiaim 2021-03-12 11:16:00 +08:00 最大的缺点是失去了多态的特性,进而很多 spring 的特性用不了,比如 AOP 以及基于 AOP 的功能 |
11 zm8m93Q1e5otOC69 2021-03-12 11:21:51 +08:00 @erisfloralia 比较通用的方法可以尝试写成基类继承 |
12 woshiaha 2021-03-12 11:23:23 +08:00 这种可以写成 static 的公共方法一般是要抽到 Util 类里面去的把 放在 service 类里面给其他类调用感觉怪怪的 |
13 ychost 2021-03-12 12:37:35 +08:00 Static 抽取到基类,或者 Util 里面去吧 |
14 erisfloralia OP |
15 zydxn 2021-03-12 15:42:07 +08:00 没必要抽到 Util 类的静态方法可以写在接口里,参考 Interface Stream |
16 cluulzz 2021-03-12 16:17:17 +08:00 要用没啥问题...比较通用的还是拉到 util 里吧 |