最近一直有这个疑问,百度也搜了,找不到满意的答案,所以来问问神通广大的 V 友们
1
HongJay 2019-05-21 11:30:43 +08:00
基本类型吧
|
2
lofbat 2019-05-21 11:34:14 +08:00 via iPhone
个人觉得对象类型更灵活,看下面有没有高见
|
3
NeinChn 2019-05-21 11:34:26 +08:00 6
如果不需要区分 0 和 null,那就基本类型
不然就统一用包装类型 |
4
BCy66drFCvk1Ou87 2019-05-21 11:37:11 +08:00
包装类吧,能涵盖返回为 null 的情况
|
5
cxtrinityy 2019-05-21 11:39:53 +08:00 via Android 2
这难道不是看需要的么?一般返回基本类型就够了,毕竟只要一个值,创建对象也是要开销的
|
6
ohyeahhh OP 个人感觉是不是 如果方法返回值可能会做比较时用包装类型,如果只是单纯的用一下,就直接用基本类型就可以了
|
7
lhx2008 2019-05-21 11:42:22 +08:00 1
如果有可能返回 null,用 Optional 包装
如果不会返回 null,用基本类型就行,向标准库看齐 |
8
Luckyray 2019-05-21 11:45:33 +08:00 1
包装类,不然会有默认值的问题。
|
10
Takamine 2019-05-21 11:46:40 +08:00
看业务吧,但是推荐包装类,对于具体的返回 NPE 等给调用者去保证。
|
11
szq8014 2019-05-21 11:52:21 +08:00
取决于习惯吧,我个人是用基本类型的
|
13
bxb100 2019-05-21 11:57:32 +08:00 via Android
你想优化的话就用基本类型,一般使用包装类型
|
14
reeco 2019-05-21 11:59:18 +08:00 via Android
全部用包装类型
|
15
zisway 2019-05-21 12:19:26 +08:00
对外接口返回值用包装类型,内部私有的基本类型就可以了。
|
16
micean 2019-05-21 12:31:44 +08:00
基本类型能显著的告诉调用者不必做非空检查,如果有这个必要的话
否则以减少拆装包为优先 |
17
ChanKc 2019-05-21 12:42:03 +08:00
Effective Java Item 61: Prefer primitive types to boxed primitives
包装类型效率低而且容易产生 NPE,实际上就是把 NPE 甩锅给调用者。负责任的程序员都会用基本类型,即便用包装类型也应该写好 javadoc。 |
18
zxcjqyy 2019-05-21 12:42:18 +08:00
看情况灵活应用呀
|
19
johnniang 2019-05-21 12:47:26 +08:00 via Android
如果有业务需求,建议用 Optional<Type>;
如果很纯粹,那就返回基本类型即可。 |
20
rockyou12 2019-05-21 12:53:00 +08:00
能用基本类型绝不要用包装类,我清楚很多用包装类型是应为数据库默认值一般为 null。但用包装类型生产环境的空指针异常会让你想死(特别是 java 的自动装箱、拆箱,你写的时候根本不会考虑数据是不是 null 的)。这点 kotlin 有?来保证安全,真的好太多
|
21
nkduqi 2019-05-21 13:10:17 +08:00
如果是对外的接口,一般不适用基本类型,都使用包装类型;
如果是应用内部自己用,则可以使用基本类型; |
22
guyeu 2019-05-21 14:14:38 +08:00
1. 优先项目内部代码规范;
2. 如果你的方法设计上不会返回 null,请使用基本类型; 3. 如果你的方法设计上会返回 null,使用 Optional 包装,在语义上告诉使用者返回值有可能为空; |
23
enaxm 2019-05-21 14:20:00 +08:00
对内你随意,不过我一般用包装类型,想到之前有个同事问我 int 能不能返回 null,我都不知道怎么吐槽。。。
系统内部一般有共有的工程打成 jar 包,常见的错误类型、宏定义等等,maven 里头连着 nexus,maven 中引入这个包 对外一般不返回一个当然包装 |
24
c4f36e5766583218 2019-05-21 14:40:26 +08:00
boolean,其它包装?
|
25
cuzfinal 2019-05-21 17:25:29 +08:00
用基本对象,减少装箱
|
26
alittlefun 2019-05-21 18:40:13 +08:00 via Android
参考 api 返回类型
|
27
oneisall8955 2019-05-21 19:54:16 +08:00 via Android
看需求~假如纯属自己做接口,爱咋用就咋用,写清楚返回是什么含义就行了
|
28
sagaxu 2019-05-21 21:52:58 +08:00 via Android
java 标准库都是返回基本类型,Java 标准制定者们,应该比较懂 Java 吧
如果同事都是菜鸡,还是建议装箱类型,他们需要 |
29
BlackZhu 2019-05-22 10:50:31 +08:00
请教一下 我想返回一条数据 不创建实体的话 难道装在 map 里面返回吗?
|
30
BlackZhu 2019-05-22 10:55:18 +08:00
如果返回实体的话会有很多空字段 但是给每个方法写不同的 dto 又太繁琐了 各位是如何处理的?
|
32
lazyfighter 2019-05-30 18:51:43 +08:00
包装类,null 跟 0 有可能两个含义
|