1. 概述
自Java 5版本以来,Java一直支持泛型。Java泛型带给我们的一个好处是类型安全。例如,当我们声明一个名为_myList_的_List_对象为_List<Integer>_时,我们不能将类型不是_Integer_的元素放入_myList_中。
然而,当我们使用泛型集合时,我们经常想要将_Collection<TypeA>转换为_Collection<TypeB>。
自Java 5版本以来,Java一直支持泛型。Java泛型带给我们的一个好处是类型安全。例如,当我们声明一个名为_myList_的_List_对象为_List<Integer>_时,我们不能将类型不是_Integer_的元素放入_myList_中。
然而,当我们使用泛型集合时,我们经常想要将_Collection<TypeA>转换为_Collection<TypeB>。
在这篇简短的教程中,我们将比较在RxJava中创建一个_Single_对象的两种流行方式,并将使用_TestSubscriber_来测试这些实现。首先,我们将看到_Single.just()工厂方法,并急切地使用它来创建对象的实例。之后,我们将学习_Single.fromCallable(),并看看如何使用它来提高性能。
_Single.just()_是创建一个_Observable_实例的直接方式。它接受一个对象作为参数,并将其包装在RxJava的_Single_中:
Single```````<String>``````` employee = Single.just("John Doe");
在本文中,我们将学习关于UUID和基于时间的UUID。
我们将看到基于时间的UUID的优势和劣势,以及何时选择它们。
我们还将探索并比较一些库,这些库将帮助我们实现生成UUID的不同算法。
UUID代表通用唯一标识符。 它是一个128位的标识符,每次生成时都预期是唯一的。
我们使用它们来唯一地识别某些事物,即使该事物没有固有的标识符。我们可以在各种环境中使用它们,例如计算机系统、数据库和分布式系统,这些地方我们需要唯一地识别对象。
两个UUID相同的可能性如此之小,以至于被认为是统计上不可能的,这使得它们成为在分布式系统中识别对象的可靠方式。
MapStruct 是一个库,它帮助我们在处理 Java Beans 映射时最小化样板代码。它仅使用提供的接口生成映射器。
在本教程中,我们将学习如何构建由简单映射器构建的复杂映射器并映射嵌套结构。
我们将把 Article 类映射到 DTO 实例。Article 包含一些简单字段,但也包含类型为 Person 的作者字段。我们也将把这个字段映射到相应的 DTO。以下是源类:
@Getter
@Setter
public class Article {
private int id;
private String name;
private Person author;
}
当我们使用Java进行编程时,高效地遍历集合是一个常见的需求。在处理列表时,_ListIterator_接口提供了一个强大的工具,用于双向遍历。然而,在某些情况下,将_ListIterator_重置到列表的第一个元素变得必要。
在本教程中,我们将探讨在Java中将_ListIterator_重置到列表开头的各种方法。
像往常一样,我们通过一个例子来理解问题。
假设我们有一个字符串列表:
List```<String>``` MY_LIST = List.of("A", "B", "C", "D", "E", "F", "G");
在这篇文章中,我们将介绍如何程序化地创建jar文件。在编写软件时,我们最终需要将其部署到生产状态。在某些情况下,使用类路径和单独的文件是可以接受的。通常,处理单个文件更为方便。在Java中,标准的方法是使用JAR、WAR或EAR文件。
基本过程是编写清单文件,打开jar文件,添加内容,最后关闭jar文件。
jar文件是ZIP文件格式的扩展,包含了一个清单文件。清单文件是特定于JAR文件的特殊文件,可能包含各种设置。其中一些是主类、可选数据(例如,作者、版本等)和代码签名信息。