
这个函数输入一个 file,返回 file 的信息。long[0] 是长度,long[1] 是最后修改。不想定义其他的 class,如何更加优雅的返回信息?
private @Nullable long[] getFileInfo(File file) { try { long length = file.length(); long modified = file.lastModified(); return new long[]{length, modified}; } catch (Exception e) { return null; } } 1 zollum 2018-04-02 13:56:57 +08:00 via Android 将长度及最后修改时间包装为一个对象类,比如 FileInfo,易于拓展,比如以后需要返回文件名称,使用 index 标识维护麻烦。方法不处理异常,建议直接抛出或者重新封装为自定义异常抛出 |
2 whileFalse 2018-04-02 14:55:02 +08:00 lz 这写法好像 c... |
3 raiz 2018-04-02 15:19:49 +08:00 这异常只有 null 异常吧, 直接判断好了,别那么依赖异常机制吧。 |
4 gen900 2018-04-02 16:16:43 +08:00 返回 对象啊,返回数组?这谁教的 |
5 AlisaDestiny 2018-04-02 17:08:12 +08:00 你这样还不如不要这个方法。 |
6 cysroad 2018-04-02 17:19:41 +08:00 File 类既然有 length()和 lastModified() 方法,为什么还要额外写一个函数来使用 返回值还放在一个数组里面用下标访问 异常处理也有问题,为什么不放在这个方法外来判断 file 对象的 null,而是捕获异常 ,用返回值判断 |
&nbs; 7 sudoz 2018-04-02 17:35:27 +08:00 @whileFalse 别黑 C 哈哈 |
8 zcm3579 2018-04-02 17:46:42 +08:00 总得有个对象包着 ,你这样还得记着每个索引对应哪个变量 |
9 Miy4mori 2018-04-02 18:02:13 +08:00 File 对象里就包含你要的 length 和 lastModified,写个函数再组装成数组通过下标访问是什么操作? |
10 yippees 2018-04-02 19:26:52 +08:00 更加优雅? 眼拙没看出原来优雅在哪里 |
11 XinLake OP |
12 murmur 2018-04-02 20:58:40 +08:00 单纯为了省行数可以新建个对象 给他个 2 个参数的构造函数就行了 不过单纯为了省代码而省代码没意思 对象的好处就是扩展起来容易 尤其是 java 这种语法比较严的 |
13 XinLake OP @whileFalse 哈哈,这是 java,c 风格的括号不是这么打的吧 |
14 honeycomb 2018-04-02 21:40:43 +08:00 @XinLake 异常开销当然大 生成 Throwable 的时候会有一个很重的 native 调用 fillInStackTrace(),但可以关掉: Throwable(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) |
15 pwrliang 2018-04-03 00:39:48 +08:00 javafx.util.Pair<Long, Long> |
16 Kongtou 2018-04-03 08:07:51 +08:00 via Android 你们懂什么叫异常吗,异常的语义是什么? |
17 lihongjie0209 2018-04-03 08:41:01 +08:00 你考虑过调用者的感受吗 |
18 pinocc 2018-04-03 11:17:32 +08:00 合并成一行 |
19 johnidy 2018-04-03 12:09:08 +08:00 这个方法好像并没有什么用处 |