Java中的元组与类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的元组与类相关的知识,希望对你有一定的参考价值。
使用元组而不是在Java中创建新类是否有任何优势?我已经看过几次这样的事情return Pair.of (username, password);
。而且我一直想知道它与这样的return new Credentials (username, password)
有什么样的优势。
答案
Java没有元组的(第一类)概念。一些项目和库引入了类似Pair
或Tuple2
/ Tuple3
/ Tuple4
/ ...的类型来弥补它,但这通常被认为是Java中的糟糕风格。
相比之下,返回一个明确定义的类型,如Credentials
,它不仅提供结构,而且还为您的数据输入安全性和有意义的getter,使您的代码更清晰,更安全,更易于使用。特别是Auto/Value项目使得创建value-types变得快速而轻松,使得元组式的类型几乎不必要。
另一答案
一对(Apache)是不可变的。您无法在创建后更改其值。事实上,许多人确实选择创建自己的类并根据需要添加方法。
一般来说,创建自己的课程被认为是更好的做法。您可以验证参数等,并在需要时添加其他功能。
另一答案
正如dimo414所说,Pair
类经常在第三方库中遇到;它有两个好处:
- 它为每个键/值配对定义一个单独的类是不必要的;所以你不需要定义一个
Credential
类。当然,这应该只用于临时存储数据,而不是在实现模型中使用。 - 即使你已经有一个
Credential
类,通常Pair
是不可变的,而Credential
类可能不是。这意味着它可能提供你并不总是想要的setUsername()
和setPassword()
方法;使用Pair
类可确保键和值保持不变。
以上是关于Java中的元组与类的主要内容,如果未能解决你的问题,请参考以下文章