当前位置: 首页 > news >正文

Kotlin的泛型上下界,枚举 和 字符串资源的区别

泛型上下界

泛型用于 让多个类(或者函数巴拉巴拉),让他们 能 拥有接受多种类型 的 某一特定类型
(虽然可以用类继承来达到这个目的,但是这样做更方便,更可读

上界:
T : Animal (Kotlin) 或 T extends Animal (Java)

下界:
in T (Kotlin) //似乎这个in是因为其实“文件夹里面的文件加是外面文件夹的父类?” ,这听起来很诡异。。。不管了,可以想象一棵树,往上的分支是子类,密密麻麻,作为上界 ( Java: ? super T

不可以联合使用上下界(这是不合法的,但是我觉得能限制一个范围也挺好的,不知道为甚么不允许):

可以联合限制

fun <T> copyWhenGreater(list: List<T>, threshold: T): List<String>
fun <T> a_B(item: T) where T : A, T : B {item.a() // 来自 Aitem.b() // 来自 B
}

Java

public <T extends A & B> void a_B(T item) {item.a();item.b();
}

枚举(enum

枚举类可以在读取类时确认字符串没有拼写错误(虽然但是这个东西不能用string.xml资源来解决吗?

//使用这个东西的理由就应该是更加方便(汗
if (status == context.getString(R.string.status_processing))
//比如这个东西他们就觉得不方便

查了一下,应该是属于逻辑层和UI层的使用区别之分

enum class UserRole(val labelResId: Int) {ADMIN(R.string.role_admin),USER(R.string.role_user),GUEST(R.string.role_guest);
}enum class OrderStatus {Processing, Shipped, Delivered
}fun handleOrder(status: OrderStatus) {when (status) { // 如果少写了一个状态,IDE 会直接标红报错提示没写完OrderStatus.Processing -> { /* ... */ }OrderStatus.Shipped -> { /* ... */ }OrderStatus.Delivered -> { /* ... */ }}
}// 在 UI 层显示时:
val displayLabel = context.getString(user.role.labelResId)

(总之就是规范化用来限制 能跑就行
可变的话可以把枚举放在数据类里面

http://www.jsqmd.com/news/593163/

相关文章:

  • 告别手动调参:利用快马ai批量对比优化openclaw配置效率提升十倍
  • Roots and the Stars[1]
  • ai辅助开发新体验:让快马ai帮你打造智能win10安装准备助手
  • 降AI前需要做哪些准备:规范操作流程和自查清单 - 还在做实验的师兄
  • 利用快马平台快速原型设计,模拟智能应用控制拦截提示界面
  • 价值:社会对劳动所产生的效用增量形成的局部共识
  • 基于微电网的小信号建模下垂控制稳定性的根轨迹分析
  • MySQL 8.0 与 5.7 全维度深度对比:核心差异、技术演进与新手选型终极指南
  • 基于.NET的Windows窗体编程之WinForms布局简介
  • 云边端数据一致性:分布式事务的实现方法
  • 降AI后怎么验证效果:多平台交叉检测的完整操作方法 - 还在做实验的师兄
  • 告别重复劳动:用快马生成智能安装脚本,一键统一团队openclaw环境配置
  • D8 209.字母异位词 349.两个数组的交集
  • python tarfile
  • AI时代的价值冲击——共识瓦解与转型阵痛
  • 赋能crm新智能:利用快马ai模型实现客户分析与话术建议
  • 降AI工具处理理科公式和图表对比:哪款保留效果最好 - 还在做实验的师兄
  • ESP32 YoRadio架构深度解析:开源网络收音机实现原理与技术配置指南
  • 直流电机双闭环调速控制系统仿真模型 转速电流双闭环PI控制 Matlab/Simulink仿真模型 带报告
  • DisplayLink驱动在Linux系统上的跨发行版兼容性解决方案
  • League Akari 技术解析:从算法原理到实战应用
  • 新手零压力上手:在快马平台生成你的第一个模拟xshell终端
  • 如何用嘎嘎降AI处理文献综述部分:综述专项降AI教程 - 还在做实验的师兄
  • 告别混乱日志:用Logrus Hook为你的Gin应用打造可观测性系统
  • 5G信号总断?可能是瑞利衰落在捣鬼!手把手教你用MATLAB仿真分析
  • 零基础掌握AI动作迁移:ComfyUI-MimicMotionWrapper全攻略
  • BetterJoy终极指南:在Windows电脑上完美使用Switch手柄玩游戏
  • Mac光标个性化新纪元:Mousecape让你的指针体验全面升级
  • 2026届必备的降重复率神器实际效果
  • 告别S19!手把手教你用CAPL解析HEX文件,实现UDS刷写器(附完整代码)