论坛首页 Java企业应用论坛

Scala拾趣--从Java7说开来

浏览 25568 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-05-08  
同意,弄一个JAVA3000出来也不错
0 请登录后投票
   发表时间:2008-05-08  
呵呵,看到了很多c#的影子。。。。
还有,那个annotation,是java6里面出现的,是吗?是不是类似c#中的attribute啊。。。。

至于java的泛型,不能说泛型没用吧,泛型可是个好东西。只不过相对于c#中的实现来说,似乎java的实现不够好,主要是性能上不够强,好像
0 请登录后投票
   发表时间:2008-05-08  
icanfly 写道
Eastsun 写道
问题是如果需要兼容,就不太可能实现的很优雅
譬如JAVA5中的泛型。。。和鸡肋差不多。
以及将要加入的闭包,其实现方式也够呛。
这种打补丁式的改进总不会太完美。

PS:弄一个JAVA3000出来也不错,抛弃向后兼容性。

我同意,JAVA顾虑得太多,应该学学Python,要使用旧JAVA语法的用JAVA旧的版本,要使用新的语法可以用新的版本,这样不但JAVA类库中有些“鸡肋”可以踢除,本身语言简洁性也得到提高!希望JAVA语言的开发工程师们不要老停留在要兼顾以前版本的陈旧思想里了!

那么庞大的开源类库,谁去转成新版本,不向下兼容导致的问题更多
0 请登录后投票
   发表时间:2008-05-08  
Norther 写道
个人觉得property那部分,可以用annotation,比引入新的关键字和谐的多,可以在编译期做些手脚,根据annotation生成get,set方法,例如
class Student{
    @Property //代表可以get 和set
    private String name;
    
    @Setter //代表可以set
    private Integer age;
    //省略get set方法
}


同时也可以对"="和"."符号做特殊处理,例如
student.information.content = "hahaha";//会编译成student.getInformation().setContent("hahaha");
student.age = 19;//会被编译成student.setAge(19);

如果这这样了 和直接把属性的访问级别放成public有什么不同?   如果要在set方法中对值进行过滤又如何实现。
典型的滥用annotation。
0 请登录后投票
   发表时间:2008-05-08  
还是现有的好,一行代码的书写有什么好处呢!读起来就很费神。
代码规范,可读性强比它不好多了。
0 请登录后投票
   发表时间:2008-05-08  
泡 泡 写道
那么庞大的开源类库,谁去转成新版本,不向下兼容导致的问题更多


这的确是个问题。
但应该可以通过渐进式的改变来解决这个问题:
发生变化时,先将它标记为Deprecated,并在第一个版本中兼容它,再下一个版本就把它丢弃。这样就有一个缓冲时间来修改了。

或者可以先保留class的二进制兼容,抛弃源代码级的兼容性。


0 请登录后投票
   发表时间:2008-05-08  
python also deprecate some features occasionally.
0 请登录后投票
   发表时间:2008-05-08  
俺是从C转JAVA的,现在又怀念C了,还是觉得语法简洁才是美
0 请登录后投票
   发表时间:2008-05-08  
能不能先把无符号数加上?!
0 请登录后投票
   发表时间:2008-05-08  
pancras 写道
Norther 写道
个人觉得property那部分,可以用annotation,比引入新的关键字和谐的多,可以在编译期做些手脚,根据annotation生成get,set方法,例如
class Student{
    @Property //代表可以get 和set
    private String name;
    
    @Setter //代表可以set
    private Integer age;
    //省略get set方法
}


同时也可以对"="和"."符号做特殊处理,例如
student.information.content = "hahaha";//会编译成student.getInformation().setContent("hahaha");
student.age = 19;//会被编译成student.setAge(19);

如果这这样了 和直接把属性的访问级别放成public有什么不同?   如果要在set方法中对值进行过滤又如何实现。
典型的滥用annotation。


当然有不同,这个机制没有这么蠢,如果你提供了属性相应的set方法,它就不生成,就用你的,这也可以在set里进行过滤,只是在编译的时候做点手脚,对虚拟机没有影响,真是灰常灰常的简单和灵活。

另外我不明白这怎么算滥用了,就加入两个annotation,就叫滥用了?宁可引入关键字去滥用关键字?那什么不是滥用?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics