我从互联网上读到了一段关于克隆的内容.但是我不太明白,所以有人可以清楚地解释清楚吗?
如果类具有final字段,则无法在clone方法中为这些字段指定值.这会导致正确初始化对象的最终字段时出现问题.如果最后一个字段指的是对象的某个内部状态,那么克隆的对象最终会共享内部状态,这对于可变对象肯定是不正确的.
供参考,这里是链接:http: //www.jusfortechies.com/java/core-java/cloning.php
我想创建一个类似下面的地图 - >
Map<Pair<MyClass.a, MyClass.b>, MyClass>>.
Run Code Online (Sandbox Code Playgroud)
我有一个对象列表 - >
List<MyClass>
Run Code Online (Sandbox Code Playgroud)
这里的Pair是一个类,已经在我的项目中,所以我想使用它.
我需要帮助从Java 8流创建它.
我试过::
ls.stream().collect(Collectors.toMap(new Pair(MyClass.a, MyClass.b), MyClass));
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误.我是Java 8的新手并且正在努力学习它.
添加示例:
class Person {
String name ;
int age ;
// Some other variables
}
Run Code Online (Sandbox Code Playgroud)
我有一份清单List<Person>.
在我的要求中,我需要一个键= {name,age},使用对类.
class Pair<T,U> {
Pair(T t, U u) {
this.t = t
this.u = u
}
// Overridden hashCode && equals methods
}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个类似的地图 Map<Pair<String, Int>, Person>
我收到一个编译器错误,说"不是一个功能接口".
我相信必须通过java 8流和收集方式.