Java7以后的版本应该具备哪些特性来鼓励从C#转换?
C#目前势头良好。要切换(或返回)到Java,您需要具备哪些功能Java7以后的版本应该具备哪些特性来鼓励从C#转换?,c#,java,programming-languages,language-features,C#,Java,Programming Languages,Language Features,C#目前势头良好。要切换(或返回)到Java,您需要具备哪些功能 如果人们在当前的Java版本中发布了解决这些问题的方法,例如,将Nullables包装在自定义类中,使其成为一个更有趣的wiki,这将非常有用。我需要某种类型的函数指针。在C#中使用委托的能力非常有用。在Java中,有很多次我想创建委托或函数指针的映射作为解决方案,但我做不到。我知道你可以用Java模拟类似的东西,但是把抽象作为语言的一部分是一个巨大的优势 刚开始,我认为Java 7最需要的是闭包,每个人都在为缺少闭包而哀叹。根据
如果人们在当前的Java版本中发布了解决这些问题的方法,例如,将Nullables包装在自定义类中,使其成为一个更有趣的wiki,这将非常有用。我需要某种类型的函数指针。在C#中使用委托的能力非常有用。在Java中,有很多次我想创建委托或函数指针的映射作为解决方案,但我做不到。我知道你可以用Java模拟类似的东西,但是把抽象作为语言的一部分是一个巨大的优势 刚开始,我认为Java 7最需要的是闭包,每个人都在为缺少闭包而哀叹。根据我的经验,Java vs.Net更像是一个商业决策,而不是一个技术决策。有MS体验的商店倾向于.Net,有Java体验的商店倾向于Java和OSS。我几乎没有看到人们根据语言特征进行转换的证据。另一方面,我看到一些商店非常倾向于一个平台b/c,他们希望雇佣一两名在该领域有知识的关键员工。我认为,Java和c之间的选择不是语言特性的问题,而是平台和生态系统选择的问题 因此,我怀疑Java或C#中的任何新语法糖是否会导致平台之间的大量转换
毕竟,JVM world有Scala,许多对语言敏感的开发人员都在以某种方式使用它。我想要的另一个类似于LINQ的东西。我注意到,当我试图参加顶级编码器竞赛时,我实际上是多么依赖使用LINQ的能力,并意识到他们只支持.NET2.0。一旦您习惯了使用LINQ来解决问题,并将其作为常规编程词汇表的一部分,就很难不从这个角度看待问题。这类似于使用泛型,然后不能使用泛型。我也会给出一个相反的答案。C#需要像Java一样的枚举实现。Java的枚举摇滚
让我也将匿名覆盖添加到此列表中。很抱歉偏离主题,但C#需要匿名重写方法的能力。我一直在Java和C#之间来回切换,我必须说,对于单元测试遗留代码,没有什么比匿名类重写更好的了。一种将模型中的值映射到UI的简单方法(如Java/FX中的
bind
)属性
匿名对象也很不错我是一名C#程序员,大约一年前我不得不参与Java应用程序的开发。我最怀念的是:
- VisualStudio(Eclipse很好,但是 VS是VS,尤其是团队版)
- 将字符串与==
- 性质
- 作为一级对象的基本类型 (例如,非“int”类型与“Integer”类型) (班级)
- 匿名方法(一种解决方法)可以 可以使用匿名类来创建 但这不一样)
- 林克
编辑:我删除了每个注释,因为它不再是自1.5版以来缺失的Java功能。不那么令人发指的XML解析和操作工具。在Java中使用XML做任何事情都很糟糕。动力。我在这两个平台上都做了很多开发。我更喜欢.NET方面,因为C#语言的发展方式。Java的发展似乎更多的是对C#的反应,而不是实际的愿景。因此,我认为Java最好的做法是忽略.NET,创建自己的新东西。没有特定顺序:
- 函数指针(委托);整件事都很愚蠢
- 真正的仿制药;如果编译器甚至不能通过单元编译保存元数据,那么使用类型安全泛型有什么意义呢
- 用户界面速度;与包装在“托管”库中的本机控件相比,所有自绘制ui库都非常慢,更不用说microsoft的自绘制ui是通过direct3d进行硬件加速的
- 一种
结构;c#在这方面非常人性化,简直是疯了收益率
- 运算符重载
- linq;只是因为它让人上瘾
- 属性;更多你上瘾的糖类
- b
(a,b,c) = getThreeValues();