Java中的元组与类

时间:2017-12-06 06:36:48

标签: java tuples

使用Tuples而不是在Java中创建新类是否有任何优势? 我见过几次这样的事 return Pair.of (username, password);。而且我一直想知道它与return new Credentials (username, password)之类的东西有什么样的优势。

3 个答案:

答案 0 :(得分:3)

Java没有元组的(第一类)概念。一些项目和库引入了类似PairTuple2 / Tuple3 / Tuple4 / ...的类型来弥补它,但这在Java中通常被认为是糟糕的风格。

相比之下,返回一个明确定义的类型,如Credentials,它不仅提供结构,而且还为您的数据输入安全性和有意义的getter,使您的代码更清晰,更安全,更易于使用。特别是Auto/Value项目可以快速轻松地创建value-types,使得元组式类型完全不必要。

答案 1 :(得分:0)

一对(Apache)是不可变的。您无法在创建后更改其值。事实上,许多人确实选择创建自己的类并根据需要添加方法。

一般来说,创建自己的课程被认为是更好的做法。您可以验证参数等,并且可以在需要时添加其他功能。

答案 2 :(得分:-1)

正如dimo414所说,Pair类经常在第三方库中遇到;它有两个好处:

  • 它为每个键/值配对定义一个单独的类;所以你不需要定义一个Credential类。当然,这只应该用于临时存储数据,而不是在您的实现模型中使用。
  • 即使您已经拥有Credential类,通常Pair也是不可变的,而Credential类可能不是。{1}}类。这意味着它可能会提供您并不总是想要的setUsername()setPassword()方法;使用Pair类可确保键和值保持不变。