![]() |
1
1
要回答您的问题: 不 ,无法实现您想要的行为类型-只要t是引用类型(甚至可能是某些值类型) 你不能做太多的事。只要提供getter,调用代码就可以根据所述数据的可访问性(即属性、字段和方法)修改数据的内部内容。
注释 我的意思是你不能真正阻止它 对于你无法控制的类 . 在这个例子中,正如其他人所说,您可以将myval的set设为私有或省略它;但是由于sortedcolleciton是一个泛型类, 你不能对别人的结构做任何事 … |
![]() |
2
1
您可以有一个只读属性(即只有getter的属性):
但要小心:这可能并不总是如你所期望的那样有效。考虑:
在这种情况下,不能更改类使用的列表,但仍然可以调用该列表
|
![]() |
3
1
您的属性不必具有相同的可访问性
对于可变引用类型,您有其他选项,例如返回
|
![]() |
4
0
只实现属性的getter,并通过使用添加/删除方法修改集合 |
![]() |
5
0
我现在明白你的问题了。我认为这应该有效:
ICloneable约束确保类型参数实现ICloneable接口。(如果可以接受) |
![]() |
Emanuel Pinho · 无不变目标push的角度变化检测策略 7 年前 |
![]() |
MingtyeP · 如何使用不可变js取消移动列表中的每个元素? 7 年前 |
![]() |
Brannon · 让赋值运算符在申报时工作 7 年前 |
![]() |
Javallion · JAVA中的不可变对象初始化 7 年前 |
![]() |
Ankush Pandit · 字符串与字符串数组元素之间的比较 7 年前 |
![]() |
plamkata__ · Swift到Kotlin,管理不可变列表 7 年前 |