`
suifongqi
  • 浏览: 55548 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

从JAVA过渡到Groovy心得(上)

    博客分类:
  • JAVA
阅读更多
groovy本其官方形容成JVM上的天使语言,确实也挺不错,开发起来也挺方便。而且从java过度groovy也很快。下面来谈谈我过渡这段时间遇到的问题吧。。。

首先选择合适的开发工具:eclipse虽然方便,但插件版本实在难把握,更新了几个groovy的插件都没法使。所以。。我用了intellij8

首先我创建了一个groovy script,代码如下:

tmp = 10
println(tmp)
tmp = "abc"
println(tmp)
//*************对比下面代码********************
def tmp = 10
println tmp
def tmp = "abc"
println tmp


第一部分代码打印结果是10和abc;第二部分代码编译不过,因为重复定义了变量名tmp
疑问
1 资料上说定义变量需要使用def关键字,但是第一部分代码,我没定义还不是照样用
那么用与不用def定义有什么区别吗?
嘿嘿,我想聪明人这时会用反编译器去了。先卖个关子这里我先不提。继续看代码

//设想方法定义前能否省略掉def
a()//能编译过吗?
{
}
def a()
{
}

遗憾的是方法必须得使用def。继续往下
//注意该代码写在groovy script中,非groovy类中

   def c =10;
   def a()
 {
   println(c)
 }
 a()
//**********对比如下代码**************************
   c =10;
   def a()
 {
   println(c)
 }
 a()

在不看运行结果前,根据之前的实验用与不用def声明定义变量效果都一样.
运行代码....
吃惊的发现第一部分代码运行不过,无法打印;第二部分代码输出10
第一部分代码报错提示如下:
Caught: groovy.lang.MissingPropertyException: No such property: c for class: s1
在不去看反编译结果前,我继续做了下面的测试

def a()
 {
   def c=10
   println(c)
 }
 a()

//***************对比******************

def a()
 {
   c=10
   println(c)
 }
 a()
//**************对比*****************
def a()
 {
   int c=10
   println(c)
 }
 a()

运行发现:以上结果打印10.。。。呵呵继续往下,再次提醒以上代码都是在groovy script文件中编写,并非类里。

通过反编译器大致可以得出如下结论:在方法a()外用def定义的变量c,其作用范围是在run方法中,而run方法与a方法平级,方法a当然就不能调用.至于不用def在外定义可用,大家下来研究研究。



下面创建一个groovy的class,在里面做一些实验

public class c1 {

  def r = 1000;
  def a()
  {
      def r="abc"
      println(r)
  }
public static void main(String[] args)
{
    def cc1 = new c1()//能否换成cc1 = new c1()或者 c1 cc1 = new c1()?
    cc1.a()
    println(cc1.getR())
}

}


考虑:代码能否编译?是否出现重命名的问题?如果可以运行println(r)的结果应该是多少?考虑主函数中的代码替换问题。
结果是:运行正确,打印abc,1000
主函数当中的代码能做替换吗?
能把def r="abc"换成 String r="abc"吗?
今天就先这些吧,避免把大家搞晕了








0
0
分享到:
评论

相关推荐

    Java中使用Groovy的三种方式

    在Java开发中,Groovy是一种强大的、动态类型的脚本语言,它可以无缝地与Java代码集成,为开发者提供了更简洁、灵活的语法。本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。...

    groovy和Java相互调用1

    标题中的“Groovy和Java相互调用1”指的是在编程时如何在Groovy语言环境中调用Java类,以及反之,如何在Java程序中调用Groovy类。这是一种跨语言交互的方式,特别是在混合使用Groovy和Java的项目中非常常见。 ...

    Java调用Groovy,实时动态加载数据库groovy脚本

    我们可以编写一个Java方法,从MongoDB中查询到Groovy脚本,然后利用上述的Groovy调用机制执行这些脚本。 例如,我们可能会有一个MongoDB集合,其中每个文档包含一个字段存储Groovy脚本。Java代码会连接到MongoDB,...

    hugo110-java_run_groovy-master_java_

    3. **集成Groovy到Java项目**: - **Maven/Gradle依赖**:如果项目使用Maven或Gradle构建,需要添加Groovy的相关依赖来确保编译和运行支持。 - **IDE支持**:像IntelliJ IDEA和Eclipse这样的Java IDE都有对Groovy...

    SpringBoot-Gradle-Maven-Java-Groovy

    SpringBoot、Gradle、Maven、Java和Groovy是Java生态系统中的重要组成部分,它们在现代软件开发中扮演着至关重要的角色。这篇详细的知识点解析将深入探讨这些技术及其相互关系。 1. **SpringBoot**: SpringBoot是...

    [Groovy] Making Java Groovy 英文版

    Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...

    Java Groovy

    - **定义**:Groovy是一种面向对象的编程语言,它直接运行在Java平台上,并且能够与现有的Java代码无缝集成。 - **特点**: - **语法简洁**:Groovy提供了更为简洁、动态的语法特性,使得编写代码变得更加高效。 -...

    java 动态脚本语言 精通 Groovy

    9. **Scripting in Java Applications**:Groovy可以嵌入到Java应用中作为脚本语言使用,例如在服务器端处理HTTP请求,或者作为配置文件来动态改变应用行为。 10. **持续集成与构建工具**:Groovy也是构建工具如...

    Java调用Groovy

    Groovy是一种基于JVM(Java Virtual Machine)的、动态类型的编程语言,它与Java有着良好的互操作性,能够无缝集成到Java项目中。这篇博客文章“Java调用Groovy”可能会探讨如何在Java代码中执行Groovy脚本,以及...

    Groovy+Java混合使用例子

    Groovy环境搭建教程中的例子工程,纯Java、纯Groovy以及Java+Groovy混合 教程参考:http://blog.csdn.net/rcom10002/archive/2011/06/26/6568557.aspx

    Java整合Groovy脚本笔记

    Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合...

    Making Java Groovy源码

    Making Java Groovy Kenneth A. Kousen 1.Easier Java 2.Closures, builders, and metaprogramming 3.Gradle for builds, Spock for testing 4.Groovy frameworks like Grails and Griffon 源码

    groovy programming(2006.12).pdf

    本书旨在帮助Java开发者过渡到Groovy编程,提供了丰富的知识点和实践指导。 ### Groovy编程语言简介 Groovy是一种基于Java平台的动态语言,设计上兼容Java语法,同时提供了一些更简洁、表达力更强的语法特性。...

    groovy-src-1.8.5.zip_.bzrignore_Groovy_Java 8_groovy src_lowern

    Groovy是一种强大的、灵活的、面向对象的编程语言,它被设计用来运行在Java平台上,与Java语言紧密集成。Groovy结合了脚本语言的简洁性和动态性,同时提供了静态类型的编译选项,使得它在Java开发环境中尤其受欢迎。...

    java在嵌入运行groovy代码1

    Java 嵌入运行 Groovy 代码是一种常见的技术实践,特别是在需要动态脚本执行或灵活扩展功能的场景中。Groovy 是一种与 Java 兼容的动态编程语言,它的语法简洁,适合编写脚本和快速原型开发。在 Java 应用程序中运行...

    Making Java Groovy--Kenneth.A.Kousen

    Making Java Groovy--Kenneth.A.Kousen. Java Groovy 很不错的学习资料

    干货:Jenkins Pipeline调用shell、python、java、groovy脚本的正确使用姿势.doc

    例如在服务器上执行 shell 命令、运行 python 或者 java 测试代码以及使用 groovy 脚本来实现一些更为复杂的功能等等。 执行 shell 命令 在 Jenkins Pipeline 中,使用 `sh` 指令可以执行 shell 命令。例如,使用 ...

    maven配置java项目使用groovy做源码.zip

    在Java开发领域,Maven和Groovy是两个重要的工具,它们可以协同工作,提升开发效率和项目的可维护性。本项目结合了这两者,通过Maven配置,将Groovy用作Java项目的源码语言,实现了更灵活的代码编写。下面我们将深入...

    JGSK, Java,Groovy,Scala,Kotlin 四种语言的特点对比.zip

    Java、Groovy、Scala和Kotlin是四种在Java平台上广泛使用的编程语言,它们各自具有独特的特点和优势。这里我们将深入探讨这四种语言的核心特性,并对比它们在实际开发中的应用。 首先,Java作为最古老的成员,自...

    java、groovy、C#、Javascript性能比较

    java、groovy、C#、Javascript的运行效率到底如何? 通过实验比较,Javascript的运行效率解决java,看来基于javascript的html5前途远大。 C#的Release版的运行性能也相当高,和C++相差不大,值得推荐。 文件内部...

Global site tag (gtag.js) - Google Analytics