java的表达能力弱爆了

一个很简单的东西,用c#...

 

List<string> keywords = ...;
var result = keywords
    .GroupBy(k => k[0])
    .ToDictionary(
        g => g.Key,
        g => g.OrderBy(k => k).ToList());

 

 如果用 java...

 

List<String> keywords = ...;
keywords
.groupBy(
  new F<String, Character> {
    public Character f(String s) { return s.charAt(0); }
  })
.toMap(
  new F<Grouping<Character, String>, Character> {
    public Character f(Grouping<Char, String> g) {
      return g.getKey();
    }
  },
  new F<Grouping<Character, String>, List<String>> {
    public List<String> f(Grouping<Character, String> g) {
      return g
        .orderBy(
          new F<String, String> {
            public String f(String s) { return s; }
          })
        .toList();
    }

  });

 

 

彻底杯具了,唉,本来多么简单的问题,搞的这么复杂。

 

看看 Listener侦听的N种写法 http://blog.csdn.net/sunboy_2050/article/details/7489274

 

这些写法都很糟糕,都比不过委托,明明一个单纯的函数即可解决问题,非得搞一个类,弄得蛋疼无比。

 

还要另外的选择是scala,不过,我觉得太复杂的,表示压力很大。

 

用python也不错,但是,代码自动完成,自动重构,无语了。

 

 

我对java不算很熟,不知道那些java大师怎么想,他们到底是怎么过来的啊。

 

我的猜测:

 

1. 大多数时候写极其白痴简单的代码,压根用不了那么多特性,此时要的是语法白痴,代码长点无所谓

 

2. 写多了也就习惯了,也就不难看了,反正java是最完美的语言。

 

3. 没办法,为了向下兼容,只好不加入委托了。

 

4. 哥也不想用java啊,但为了混饭吃。

 

 

无论如何,我实在受不了这么冗长的代码。

 

就到这里,以后啥不爽,继续吐槽。。。

 

ps:我还是学生,学编程纯属爱好。

代码抄自"java黑": http://blog.zhaojie.me/2010/04/why-java-sucks-and-csharp-rocks-2-primitive-types-and-object-orientation.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值