小编amu*_*u61的帖子

用Java克隆

我从互联网上读到了一段关于克隆的内容.但是我不太明白,所以有人可以清楚地解释清楚吗?

如果类具有final字段,则无法在clone方法中为这些字段指定值.这会导致正确初始化对象的最终字段时出现问题.如果最后一个字段指的是对象的某个内部状态,那么克隆的对象最终会共享内部状态,这对于可变对象肯定是不正确的.

供参考,这里是链接:http: //www.jusfortechies.com/java/core-java/cloning.php

java

14
推荐指数
2
解决办法
4836
查看次数

使用Java 8动态创建具有组合键的映射

我想创建一个类似下面的地图 - >

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流和收集方式.

java-8

1
推荐指数
1
解决办法
2766
查看次数

标签 统计

java ×1

java-8 ×1