加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy def和Java Object之间的区别?

发布时间:2020-12-14 16:30:55 所属栏目:大数据 来源:网络整理
导读:我想弄清楚之间的区别 Groovy的: def name = "stephanie" Java的: Object name = "stephanie" 因为两者似乎都是作为与它们进行交互的对象,我必须将它们投射到原来的预期类型. 我最初是在搜索一个java等效的C#的动态类(Java equivalent to C# dynamic class
我想弄清楚之间的区别

Groovy的:

def name = "stephanie"

Java的:

Object name = "stephanie"

因为两者似乎都是作为与它们进行交互的对象,我必须将它们投射到原来的预期类型.

我最初是在搜索一个java等效的C#的动态类(Java equivalent to C# dynamic class type?),并建议看看Groovy的def

例如,我对groovy的def的印象是,我可以做以下事情:

def DOB = new Date(1998,5,23);
int x = DOB.getYear();

但是这不会建立

谢谢,斯蒂芬

解决方案编辑:
结束了我的错误,因为我有一个groovy类wtih公共属性(在我的例子上面DOB)定义与def,但是然后被attem从.java类访问他们(在我的例子上面调用.getYear()上).它是一个菜鸟的错误,但问题是一旦物体留下了一个Groovy文件,它被简单地视为一个对象.感谢你的帮助!

解决方法

这两个语句本身没有什么区别,但是由于Groovy是一种动态语言,您可以编写

def name = "Stephanie"
println name.toUpperCase() // no cast required

而您需要在Java版本中显式转换

Object name = "Stephanie";
System.out.println(((String) name).toUpperCase());

因此,在Groovy中,def比在Java中无用的Object更有意义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读