V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  aguesuka  ›  全部回复第 2 页 / 共 46 页
回复总数  902
1  2  3  4  5  6  7  8  9  10 ... 46  
2022-12-16 13:40:04 +08:00
回复了 yazinnnn 创建的主题 Java 2022 年冬月, Java 后端工程师拒绝使用 kotlin 的技术原因有哪些?
@Slurp
??? 你的攻击性让我放弃和你正常沟通

https://youtrack.jetbrains.com/issue/KT-20423/Support-sealed-interfaces
2022-12-15 14:32:46 +08:00
回复了 yazinnnn 创建的主题 Java 2022 年冬月, Java 后端工程师拒绝使用 kotlin 的技术原因有哪些?
@FrankHB 没太懂, 想听听你对 kotlin 的想法?

支持 structural type system 是必要不充分条件, 就像 lambda 这个古老概念一样, 以前这个特性是可选的, 而现在是必须的. 比如我们不需要 null, 必须要有泛型, 泛型支持协逆变的最佳实践. 尽管早有有了这样的想法, 但是直到最近(10 年?)才形成共识. 比如说我今天的暴论: undecidable 的类型体操都是错的, 等到 20 年后说不定就是喝水一样平凡的事情.
2022-12-14 23:22:47 +08:00
回复了 yurong3333333333 创建的主题 程序员 大家在什么业务场景使用对象作为 HashMap 的 key?
@tedzhou1221 你应该使用 EnumMap 而不是 HashMap
2022-12-14 23:11:22 +08:00
回复了 yazinnnn 创建的主题 Java 2022 年冬月, Java 后端工程师拒绝使用 kotlin 的技术原因有哪些?
@Aurt 这个比喻太妙了
2022-12-14 23:00:49 +08:00
回复了 yazinnnn 创建的主题 Java 2022 年冬月, Java 后端工程师拒绝使用 kotlin 的技术原因有哪些?
语言决定论主张语言决定思考模式, 语言相对论主张语言结构及使用可能影响思考模式及决策方式 -- 无论哪个版本, 至少认为"自然语言"对思考的影响是显著的, 不过对于主张编程语言工具论的 Java 程序员来说, 至少编程语言对他们没啥影响, 毕竟他们写代码从不思考.

言归正传, 私以为 kotlin 是伪装成现代编程语言的 java, 现代编程语言的一个重要特性是支持 structural type system, 否则语法糖会变得特别苦.

举个例子 java 中的 lambda 其实是只有唯一方法的接口的匿名实现, 而 kotlin 中, 看起来我们可以定义 T -> R, 但实际上它和 java 没啥区别, kotlin 的标准库里面绝望地定义了 Function0 到 Funciton22 以及 FunctionN 合计 24 个 class;
```
var lambda : () -> Unit = ::func
var kFunction0 : KFunction0<Unit> = ::func
var kFunction : KFunction<Unit> = ::func
var kCallable : KCallable<Unit> = ::func
var function : Function<Unit> = ::func
```
以上五个对象, 如果两两给对方赋值, 哪些可以编译通过? 如果使用 IDEA 的创建函数功能, IDEA 的默认补全是哪个类型? 如果 func 是一个泛型函数怎么表示?

我们知道 interface 作用是用来弱化 class 的 type 语义 上. 而在 JDK15 (大概)前, kotlin 的密封只能作用于 class 不能作用于 interface, 这是反设计的, 而随着 JDK15 的推出, kotlin 的接口也能被密封了, 而且 JDK15 以前的运行时也支持这个特性, kotlin 的基本盘安卓很长一段时间都不会升级到 15. 当初理由现在看起来不成立了. 很多时候会惊喜地发现 kotlin 居然有这个特性, 然后失望地发现这个特性存在各种各样的陷阱, 这个特性受限于 JVM 就这样, jetbrains 已经做得(当时认为的)最好了.

还有一些我不喜欢的设计, 比如说我可以写出这样的迷惑代码 `fun Unit(Unit : () -> Unit) = Unit(); Unit`, 我们在读代码的时候, 大脑也是容易出 bug 的编译器, 没有必要为了这样的特性丰富 AST.

解构函数也是硬编码, 而且是从 1 开始. 至于协程 null 在调 java 代码时非常难受别人应该都讲过了.
2022-12-10 02:00:27 +08:00
回复了 shiyu6226 创建的主题 程序员 求助, Java 接口上传 2G 以上大文件 EOFException: null
multipart 文件在转成 MultipartFile 的时候必须读完整个流, 所以会缓存到内存或硬盘里, 估计还有别的配置到上限了.
2022-12-10 00:55:01 +08:00
回复了 shiyu6226 创建的主题 程序员 求助, Java 接口上传 2G 以上大文件 EOFException: null
spring.servlet.multipart.max-file-size: -1
spring.servlet.multipart.max-request-size: -1
亲测 ok, 依赖只有 spring-boot-starter-web:3.0.0
2022-12-10 00:14:28 +08:00
回复了 shiyu6226 创建的主题 程序员 求助, Java 接口上传 2G 以上大文件 EOFException: null
@guyeu e.getMessage 改成啥都可以, 重点是要把 error 当第二个参数传进去
2022-12-10 00:04:05 +08:00
回复了 shiyu6226 创建的主题 程序员 求助, Java 接口上传 2G 以上大文件 EOFException: null
@guyeu null 就 null 呗, 异常栈都打出来了
2022-12-09 20:20:07 +08:00
回复了 shiyu6226 创建的主题 程序员 求助, Java 接口上传 2G 以上大文件 EOFException: null
对了打印日志的正确姿势是 log.error(e.getMessage(), e);这样才会打印异常栈
2022-12-09 20:09:42 +08:00
回复了 shiyu6226 创建的主题 程序员 求助, Java 接口上传 2G 以上大文件 EOFException: null
从你发的代码看不出啥问题.
首先得把问题定位到行, 你发的错误中只有信息而没有异常栈, 因为你的 controller catch 到异常没有打印日志(注意要打印异常栈). 打印异常栈后, 再判断是不是在你的 service 中报的错.

如果是在 service 中, 那直接把 service 改成

```
private static void writeFileToLocal(String toLocalFilePath, MultipartFile file) throws IOException {
try(InputStream inputStream = file.getInputStream()){
Files.copy(inputStream, Path.of(toLocalFilePath), StandardCopyOption.REPLACE_EXISTING);
}
}
```
不要直接使用 inputstream, 不要吞异常, 不要 gc;
2022-12-08 10:21:53 +08:00
回复了 maclon 创建的主题 生活 2019 快回来了吧
2019 快回来了吧(指 GDP)
把 read 改成 readAllBytes
2022-11-24 12:54:38 +08:00
回复了 Pantheoon 创建的主题 绿茵场 国足为啥这么烂?
国足垃圾是因为国服领先一个版本, 足球不时髦不好看不好玩, 对年轻人毫无吸引力, 等外国也发现看足球不如打 5 把 csgo 的时候国足就崛起了.
2022-11-17 09:13:17 +08:00
回复了 Margelator 创建的主题 问与答 计算机大佬在哪里?
用 wine
2022-11-09 14:01:15 +08:00
回复了 gzk329 创建的主题 程序员 Java IO 相关 Process 执行命令获取输出 输出很大该怎么读取?
sleep 三秒就正常的话, 感觉这段代码是能运行的, 而是执行的时机不对
2022-11-09 13:52:27 +08:00
回复了 gzk329 创建的主题 程序员 Java IO 相关 Process 执行命令获取输出 输出很大该怎么读取?
@aguesuka 看错了, bash -c 确实不用
2022-11-09 13:48:44 +08:00
回复了 gzk329 创建的主题 程序员 Java IO 相关 Process 执行命令获取输出 输出很大该怎么读取?
@gzk329 命令有问题, 最后一个字符串应该按照空格拆分
1  2  3  4  5  6  7  8  9  10 ... 46  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5360 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 07:48 · PVG 15:48 · LAX 00:48 · JFK 03:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.