2017-06-15 19:34

引用来自“游客”的评论

还不如定义一个对象方便呢

引用来自“愚_者”的评论

java大量的pojo类,大量的getter setter,太繁琐了,如果pojo里的属性多于5个,写成pojo,也许心里还好过些。但是比如只为了2个属性,写一整套模板代码,太冗长,啰嗦了,而且项目里如果这种情况很多,那项目代码里会出现大量的“小”pojo类,实在是不好看。这也是很多新兴语言吐槽java的一个点
有个框架叫 #Lombok#
2017-06-15 18:14
就是指返回一个封装类是吧?你这个元组就是带有自身方法的封装类的意思吧
2017-06-15 16:58

引用来自“赵仁杰”的评论

groovy也有Tuple,可以试试
元组很多语言都有,各种语言里这个数据类型所表达的含义都是差不多的。能在语言级别直接提供支持,会让使用的体验达到最好,因为可以做很多语法糖。
java一直没有直接在语言级别提供,所以第三方实现的时候,受限于语法规则,使用体验上总是达不到最好,不过我这个项目已经在尽可能的提高使用体验了😄
2017-06-15 16:54

引用来自“bogang2012”的评论

需要对取出的对象进行强制类型转换,否则会报错,比如下面的HashMap
Tuple2<Integer, HashMap<String, String>> t2 = Tuple2.with(2, new HashMap<String, String>(){{put("aaa", "bbb");}}) ;
HashMap map = (HashMap)t2.get(1);
嗯,get方法默认返回的是Object类型,需要手动强转,下一版会做到自动转
另:你也可以这样取哦,HashMap map = t2.second;
😄
2017-06-15 16:33
groovy也有Tuple,可以试试
2017-06-15 16:32
需要对取出的对象进行强制类型转换,否则会报错,比如下面的HashMap
Tuple2<Integer, HashMap<String, String>> t2 = Tuple2.with(2, new HashMap<String, String>(){{put("aaa", "bbb");}}) ;
HashMap map = (HashMap)t2.get(1);
2017-06-15 16:27

引用来自“swiftplus”的评论

@红薯 这个东西怎么上的头条,走的后门?
这种损人不利己的话,有意思吗?
你看不起我的东西没关系,你可以选择无视,有必要这样吗?
you can you up, no can no bb!
2017-06-15 16:08
@红薯 这个东西怎么上的头条,走的后门?
2017-06-15 16:06
这如果也叫元组的,语言的早就该去见它的原祖去了!
2017-06-15 15:50

引用来自“F_L_F”的评论

Tuple1=first blood,Tuple2=double kill,Tuple3=triple kill,Tuple4=quatary kill,Tuple5=penta kill,TupleN=legendary
大神带我飞
2017-06-15 14:59
Tuple1=first blood,Tuple2=double kill,Tuple3=triple kill,Tuple4=quatary kill,Tuple5=penta kill,TupleN=legendary
2017-06-15 14:51

引用来自“想入肥菲”的评论

用JTuple 返回的对象,如何排序,请作者后续版本添加啊!

引用来自“愚_者”的评论

你指的是Tuple[]中,对里面的元组进行排序吗?

引用来自“想入肥菲”的评论

是的,比如返回List<Tuple<int, str>>,想按照里面的int进行排序。

引用来自“愚_者”的评论

嗯嗯,好的,我知道了,后续会提供这个功能😃

引用来自“想入肥菲”的评论

回复@愚_者 : 多谢!

引用来自“愚_者”的评论

突然发现jdk8的排序强到不行,因为是函数式API,所以扩展性已经极好了,元组的排序很容易实现,我都不知道我还能怎么优化,能比这更好了
List<Tuple2<Integer, String>> list = new ArrayList<>();
list.add(Tuple2.with(5, "5"));
list.add(Tuple2.with(9, "9"));
list.add(Tuple2.with(2, "2"));
list.add(Tuple2.with(7, "7"));
list.add(Tuple2.with(1, "1"));

log.debug("before:{}", list);
list.sort(Comparator.comparingInt(t -> t.first));
log.debug("after:{}", list);
谢谢,我试试!
2017-06-15 13:48

引用来自“想入肥菲”的评论

用JTuple 返回的对象,如何排序,请作者后续版本添加啊!

引用来自“愚_者”的评论

你指的是Tuple[]中,对里面的元组进行排序吗?

引用来自“想入肥菲”的评论

是的,比如返回List<Tuple<int, str>>,想按照里面的int进行排序。

引用来自“愚_者”的评论

嗯嗯,好的,我知道了,后续会提供这个功能😃

引用来自“想入肥菲”的评论

回复@愚_者 : 多谢!
突然发现jdk8的排序强到不行,因为是函数式API,所以扩展性已经极好了,元组的排序很容易实现,我都不知道我还能怎么优化,能比这更好了
List<Tuple2<Integer, String>> list = new ArrayList<>();
list.add(Tuple2.with(5, "5"));
list.add(Tuple2.with(9, "9"));
list.add(Tuple2.with(2, "2"));
list.add(Tuple2.with(7, "7"));
list.add(Tuple2.with(1, "1"));

log.debug("before:{}", list);
list.sort(Comparator.comparingInt(t -> t.first));
log.debug("after:{}", list);
2017-06-15 12:04

引用来自“想入肥菲”的评论

用JTuple 返回的对象,如何排序,请作者后续版本添加啊!

引用来自“愚_者”的评论

你指的是Tuple[]中,对里面的元组进行排序吗?

引用来自“想入肥菲”的评论

是的,比如返回List<Tuple<int, str>>,想按照里面的int进行排序。

引用来自“愚_者”的评论

嗯嗯,好的,我知道了,后续会提供这个功能😃
回复@愚_者 : 多谢!
2017-06-15 11:32

引用来自“洛阳码农”的评论

模仿c#吗?

引用来自“愚_者”的评论

谈不上模仿,很多语言都有元组,不止是C#,而java没有,我只是用Java语言实现了,元组的概念在各个语言里都是基本一样的。在现代的开发中,这本应该是开发语言直接提供的

引用来自“Mr.CT”的评论

pojo get/set ide生成的哦。
ide确实可以帮我们生成很多代码,但是使用的时候,你还是得老老实实的new对象出来,然后各种getXXX拿值之类的,这些代码如果也可以省掉,不是更好吗😄
2017-06-15 11:30

引用来自“想入肥菲”的评论

用JTuple 返回的对象,如何排序,请作者后续版本添加啊!

引用来自“愚_者”的评论

你指的是Tuple[]中,对里面的元组进行排序吗?

引用来自“想入肥菲”的评论

是的,比如返回List<Tuple<int, str>>,想按照里面的int进行排序。
嗯嗯,好的,我知道了,后续会提供这个功能😃
2017-06-15 11:25

引用来自“洛阳码农”的评论

模仿c#吗?

引用来自“愚_者”的评论

谈不上模仿,很多语言都有元组,不止是C#,而java没有,我只是用Java语言实现了,元组的概念在各个语言里都是基本一样的。在现代的开发中,这本应该是开发语言直接提供的
pojo get/set ide生成的哦。
2017-06-15 11:21

引用来自“想入肥菲”的评论

用JTuple 返回的对象,如何排序,请作者后续版本添加啊!

引用来自“愚_者”的评论

你指的是Tuple[]中,对里面的元组进行排序吗?
是的,比如返回List<Tuple<int, str>>,想按照里面的int进行排序。
2017-06-15 11:05

引用来自“想入肥菲”的评论

用JTuple 返回的对象,如何排序,请作者后续版本添加啊!
你指的是Tuple[]中,对里面的元组进行排序吗?
2017-06-15 10:07
javatuples不是已经有了吗
2017-06-15 09:51
Apache common里面早都有了,还不如搞点新的东西。
2017-06-15 09:47

引用来自“unrealt84”的评论

Tuple的理念我是赞成的,但说实话你这里的实现感觉不是很好,特别是名字Tuple0到Tuple5,我还是喜欢Unit、Pair、Triplet这样的名字。我之前在用 org.javatuples:javatuples:1.2,虽然是好几年前的东西了,感觉还是挺好用的。
这个怎么说呢。。设计理念不同吧,我当时这样取名是为了用最直接的方式让用户看到名字就知道含义,然后取元素也不需要调用get方法,直接拿值就可以用了,比如tuple.first,尽可能的提高可读性和易用性,希望你可以尝试下😄
2017-06-15 09:31
Tuple的理念我是赞成的,但说实话你这里的实现感觉不是很好,特别是名字Tuple0到Tuple5,我还是喜欢Unit、Pair、Triplet这样的名字。我之前在用 org.javatuples:javatuples:1.2,虽然是好几年前的东西了,感觉还是挺好用的。
2017-06-15 09:11

引用来自“panmingguang”的评论

我一直是用 map<String, Object> 没觉得不方便 , 这种放回 要的类型统一, Object 对应基本类型 数据库常用类型, get set 对于 返回 json 操作交互来讲 早就没必要了
嗯,对于最终返回的结果,如果走json,其实你说的处理方式就可以了,因为最终别人看到的并不是Object,而是json
但是如果不是走json呢?或者只是你业务代码里的中间结果呢?用Object的话可读性是很差的,这种场景我觉得用元组是比较合适的,少了很多强转代码,也不用再定义一个pojo,可读性也很高😄
2017-06-15 09:09
好东西!
但是乳沟java基础类库就有这个多好啊,使用这个,还是对已有代码侵入性有点大。
2017-06-15 09:04

引用来自“洛阳码农”的评论

模仿c#吗?

引用来自“愚_者”的评论

谈不上模仿,很多语言都有元组,不止是C#,而java没有,我只是用Java语言实现了,元组的概念在各个语言里都是基本一样的。在现代的开发中,这本应该是开发语言直接提供的

引用来自“robortly”的评论

本来就是模仿C#的特性 ;楼上这么说 “元组的概念在各个语言里都是基本一样的”,支持只是一个时间问题,这他妈不是一个笑话吗?
好的,只有一个要求,不要说模仿C#。我从萌生这个想法,到最终想法落地实现,都是受python的启发。
2017-06-15 08:49
我一直是用 map<String, Object> 没觉得不方便 , 这种放回 要的类型统一, Object 对应基本类型 数据库常用类型, get set 对于 返回 json 操作交互来讲 早就没必要了
2017-06-15 08:31

引用来自“游客”的评论

还不如定义一个对象方便呢

引用来自“愚_者”的评论

java大量的pojo类,大量的getter setter,太繁琐了,如果pojo里的属性多于5个,写成pojo,也许心里还好过些。但是比如只为了2个属性,写一整套模板代码,太冗长,啰嗦了,而且项目里如果这种情况很多,那项目代码里会出现大量的“小”pojo类,实在是不好看。这也是很多新兴语言吐槽java的一个点

引用来自“Pasenger”的评论

使用lombok完美解决这个问题
不是一个事
2017-06-15 08:24

引用来自“游客”的评论

还不如定义一个对象方便呢

引用来自“愚_者”的评论

java大量的pojo类,大量的getter setter,太繁琐了,如果pojo里的属性多于5个,写成pojo,也许心里还好过些。但是比如只为了2个属性,写一整套模板代码,太冗长,啰嗦了,而且项目里如果这种情况很多,那项目代码里会出现大量的“小”pojo类,实在是不好看。这也是很多新兴语言吐槽java的一个点
使用lombok完美解决这个问题
2017-06-15 08:01
额,我大微软老早就支持了。模仿C# 的语言特性了。 老衲笑而不语....
2017-06-14 23:42
用JTuple 返回的对象,如何排序,请作者后续版本添加啊!
2017-06-14 16:35

引用来自“十一十二”的评论

关键看怎么用
github: https://github.com/sd4324530/JTuple
osc: http://git.oschina.net/pyinjava/jtuple
readme里有详细的使用方法😄
2017-06-14 16:32
关键看怎么用
2017-06-14 16:26

引用来自“shitalpig”的评论

在哪里 github的地址?
github: https://github.com/sd4324530/JTuple
osc: http://git.oschina.net/pyinjava/jtuple
2017-06-14 16:13
在哪里 github的地址?
2017-06-14 15:48
👍👍
2017-06-14 15:13

引用来自“哈哈爱兮爱兮乎乎”的评论

读方便,写啰嗦。有没有自动的key?
Tuple0-Tuple5就是为你这个需求提供的😄
2017-06-14 15:12

引用来自“洛阳码农”的评论

模仿c#吗?
谈不上模仿,很多语言都有元组,不止是C#,而java没有,我只是用Java语言实现了,元组的概念在各个语言里都是基本一样的。在现代的开发中,这本应该是开发语言直接提供的
2017-06-14 15:02

引用来自“shitalpig”的评论

文档呢,Java垃圾,看看c# 的元祖 多么完美啊
git的readme就是文档
2017-06-14 14:15

引用来自“游客”的评论

还不如定义一个对象方便呢

引用来自“愚_者”的评论

java大量的pojo类,大量的getter setter,太繁琐了,如果pojo里的属性多于5个,写成pojo,也许心里还好过些。但是比如只为了2个属性,写一整套模板代码,太冗长,啰嗦了,而且项目里如果这种情况很多,那项目代码里会出现大量的“小”pojo类,实在是不好看。这也是很多新兴语言吐槽java的一个点

引用来自“ODMark”的评论

我写过很多对象,可依然孑然一身。

引用来自“notreami”的评论

难道你们都不知道 lombok?getter、setter已经是过去式了
知道你说的,我是以这个举例子,用了lombok,是可以省很多模板代码,但是我想说明的是,使用元组的话,有些简单的pojo,连pojo类都不需要写了😄
2017-06-14 13:15

引用来自“游客”的评论

这个和spring-tuple相比,有啥优势呢?
无依赖,API更加人性化
2017-06-14 13:00

引用来自“游客”的评论

这个和spring-tuple相比,有啥优势呢?
同问?
2017-06-14 12:38

引用来自“游客”的评论

还不如定义一个对象方便呢

引用来自“愚_者”的评论

java大量的pojo类,大量的getter setter,太繁琐了,如果pojo里的属性多于5个,写成pojo,也许心里还好过些。但是比如只为了2个属性,写一整套模板代码,太冗长,啰嗦了,而且项目里如果这种情况很多,那项目代码里会出现大量的“小”pojo类,实在是不好看。这也是很多新兴语言吐槽java的一个点

引用来自“ODMark”的评论

我写过很多对象,可依然孑然一身。
难道你们都不知道 lombok?getter、setter已经是过去式了
2017-06-14 12:22

引用来自“游客”的评论

还不如定义一个对象方便呢

引用来自“愚_者”的评论

java大量的pojo类,大量的getter setter,太繁琐了,如果pojo里的属性多于5个,写成pojo,也许心里还好过些。但是比如只为了2个属性,写一整套模板代码,太冗长,啰嗦了,而且项目里如果这种情况很多,那项目代码里会出现大量的“小”pojo类,实在是不好看。这也是很多新兴语言吐槽java的一个点
我写过很多对象,可依然孑然一身。
2017-06-14 11:39

引用来自“kidbei”的评论

这跟写个类继承ArrayList有什么区别:bowtie:
实现了元组的一些特性,比如不可变之类的,比如获取指定的元素的API也做了优化。元组是一种数据类型,java上没有直接提供,第三方实现上自然是借助其他数据格式来实现的哇
这是一个工具包,目的是提高开发者的开发效率,节省开发时间,如果你要问和其他实现有什么区别,那几乎一切工具类型的包,你都可以问出这个问题:bowtie:
2017-06-14 11:26
这跟写个类继承ArrayList有什么区别:bowtie:
2017-06-14 11:24

引用来自“游客”的评论

还不如定义一个对象方便呢
java大量的pojo类,大量的getter setter,太繁琐了,如果pojo里的属性多于5个,写成pojo,也许心里还好过些。但是比如只为了2个属性,写一整套模板代码,太冗长,啰嗦了,而且项目里如果这种情况很多,那项目代码里会出现大量的“小”pojo类,实在是不好看。这也是很多新兴语言吐槽java的一个点
回复 @
{{emojiItem.symbol}}
返回顶部
顶部