欢迎来到 星空Online - 织梦者,我的原创世界。

Vue 3.3 泛型组件类型识别错误的解决

2023 年 5 月 11 日,Vue 发布了新版本 3.3。开发团队这个版本里加入了许多新特性,其中就包括了泛型组件。

许多语言都具备支持泛型的能力,尤其是在后端技术栈中更是不可或缺。举一个非常常见的例子 —— List,就是泛型集合类型的代表。

当我们需要定义一个集合时,往往是需要限制用户加入到这个集合对象的内容。例如我们需要定义一个数值类型的集合,那么肯定不希望有字符串混进来,在没有泛型支持之前,JavaC# 是通过 Object 的方式存取数组中的变量,在放入和取出对象时,还需要额外进行装箱与拆箱操作,并在这个过程中手动完成类型检查的动作。自从 C# 2.0 以及 JDK 5 分别正式的加入了泛型支持后,在编译时就可以通过泛型的方式约束操作对象的类型,在编码阶段即可杜绝类型不一致带来的隐患,对 C# 来说,更是在运行时也获得了充分的泛型能力支持,语法层面上更是盖过 Java 一头。

阅读 评论

对象方法与静态方法在工具类设计中的边界

对于一个正常规模的业务系统,除了必要的业务代码之外,还会有一些公共方法来完成公共逻辑,如获取请求方 IP 地址、日期和数字的格式化处理、检查用户权限等。尽管这些公共方法的具体实现可能不同,但它们通常都是扮演着完成公共逻辑的角色。这些公共方法可能会被封装成服务,也可能会被写入工具类的静态方法中。那么为什么会有这些差异?这些不同的实现方式在设计层面上有何不同之处?本文将探讨这个问题。

既然提到了静态方法与通过对象暴露的方法,首先我们要想一下这两种方式本质的区别是什么。我们经常会提到“面向对象”这个词,如果从这一点来说,静态方法与通过对象暴露的方法的一个重要的区别就是——工具类的静态方法是一个孤立的方法,而对象提供的方法是隶属于特定对象的。

考虑到大环境的因素,接下来的讨论将以 Java 为例。

阅读 评论

一行代码修复群晖VideoStation刮削器的评分BUG

群晖自带的 Video Station 是很多人建立私有影院的绝佳选择,其自带的刮削器效果强大,只要按照他规定的命名方式定义视频文件的名称,刮削器就可以智能的利用 The Movie DB 开放的API将影视信息保存到本机。

尽管绝大部分的视频都能够正常识别及保存,对于电视剧、动画等分季多集的作品来说,有时候会遇到作品详情能正常保存,但分级数据却都为空,这是为什么?

经过调查发现,对于不能正常保存的视频都有一个共同的现象——就是他们的评分数据都不规范。正常的评分数据是一个不超过1位的小数,但这些视频往往小数位数都会超过1位。比如我们拉取动画片《賭ケグルイ》的评分时,其用户评分(vote_average)返回的就是“8.251”。而 Video Station 处理这样的数据时,就会提示“数据格式不正确”,继而无法保存,除非手动将“8.251”改为“8.2”这样的1位小数格式。

阅读 评论