`
boby2046
  • 浏览: 67983 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

groovy的as关键字

阅读更多

  很久没有苦学groovy了.今天再翻看了一下groovy in action,as keyword,它支持类型的别名:

  在java里面,对一些已经写好了,标记为final的,或者不被推荐继承的类和接口,我们可以说是毫无办法可言,可是在groovy的帮助下就不一样了,groovy绝对不是Java的语法糖(groovy in action的作者老是强调这一观点,不过说得很实在,groovy的出现的确减少了程序员的开发工作量)。这时候,groovy的as关键字就大派用场了.

as.groovy 代码
  1. import java.net.URLEncoder as U1   
  2. import java.net.URLEncoder as U2   
  3. println U1.encode("中","gbk");   
  4. println U2.encode("国","gb2312");   
  5. println U1.encode("人","gb18030");  

 

输出结果
  1. F:\>groovy as.groovy   
  2. %D6%D0   
  3. %B9%FA   
  4. %C8%CB  

 

  这里,我选用了做web开发比较常用的URLEncoder,我们可以动态地给URLEncoder加上自己的方法.

as2.groovy 代码
  1. import java.net.URLEncoder as U1   
  2. import java.net.URLEncoder as U2   
  3. class U3 extends U2{   
  4.     GString encode(GString str){   
  5.         encode(str,"UTF8");   
  6.     }   
  7. }   
  8. println U1.encode("中","gbk");   
  9. println U2.encode("国","gb2312");   
  10. println U1.encode("人","gb18030");   
  11. println U3.encode("中国人");  

 

输出结果
  1. F:\>groovy as2.groovy   
  2. %D6%D0   
  3. %B9%FA   
  4. %C8%CB   
  5. %D6%D0%B9%FA%C8%CB  
  看到了嘛?使用了as,我们保持了之前的类库,比如说是第三方的类库时,又可以动态地添加自己的方法。读起来也相当容易。动态语言就是不一样。其实java5.0也有类似的static import 的特性,只不过它的目的是针对可重用性,但是如果遇到了名字冲突的情况,比如说static import了两个类,他们含有相同名字的方法,那时就比较麻烦了,而且可读性不好。groovy的as算是对java的一种补充吧.
分享到:
评论

相关推荐

    Groovy教程学习资料宣贯.pdf

    - **编译和运行**:完成Groovy代码后,右键点击源文件,选择`Compile Groovy File`进行编译,然后选择`Run As` -> `Groovy`来运行程序。Groovy允许你只写一行代码(如`println "Hello World"`)即可构成一个完整的...

    groovy与java的区别1

    比如,Groovy允许开发者省略语句末尾的分号(逗号),在某些情况下甚至可以省略`return`关键字。此外,Groovy的脚本特性使得它可以直接执行,无需像Java那样定义`main`方法或强制使用类结构。这意味着Groovy的代码...

    Groovy入门

    - 使用 `as` 关键字可以转换变量类型,如 `"1" as Integer` 将字符串 "1" 转换为整型。 #### 三、数据类型与结构 - **基础类型**:与 Java 类似,支持整型、浮点型、布尔型等。 - **GString**:Groovy 特有的字符...

    Groovy Refcards

    - **`as`**:用于类型转换,使变量或表达式能够被当作另一种类型来处理。 - **`assert`**:断言语句,用于测试条件是否为真,常用于开发过程中的调试。 - **`import`**:引入类或包,使得无需完全限定名即可使用特定...

    Grails快速入门

    3. **运行Groovy脚本**:右键点击`HelloWorld.groovy`文件,选择`Run As -> Groovy Script`或`Run As -> Java Application`。控制台将会输出`Hello World`。 此外,还可以尝试更复杂的示例,例如: ```groovy ...

    百度地图 as

    ```groovy dependencies { implementation 'com.baidu.mapapi:baidumap-sdk:5.6.0' } ``` 之后,确保你的AndroidManifest.xml文件中已经添加了必要的权限,包括访问网络、读写外部存储以及使用GPS定位等: ```xml...

    AS版本JNI Demo

    2. **定义JNI函数**:在Java源码中,我们使用`native`关键字声明一个方法,然后使用`System.loadLibrary("your_library_name")`加载对应的本地库。例如: ```java public class MainActivity extends ...

    adfhalkd fad fa df

    其中一些常用的关键字包括 `as`、`assert`、`break`、`case`、`catch`、`class`、`const`、`continue`、`def`、`default`、`do`、`else`、`enum`、`extends`、`false`、`finally`、`for`、`goto`、`if`、`implements...

    Jenkins基础入门-15-Jenkins中的Pipeline.rar

    其基本格式是一个`pipeline`块,包含`agent`(执行器)、`stages`(阶段)、`steps`(步骤)等关键字。例如: ```groovy pipeline { agent any stages { stage('Build') { steps { sh 'mvn clean install' } ...

    Jenkins高级篇之Pipeline技巧篇-2-如何处理多个参数化变量.rar

    在Pipeline中,我们通过`params`关键字来访问这些参数。 2. **定义参数** 在Jenkinsfile中,我们可以使用`parameters`块来定义参数化变量。例如,创建两个文本参数`envName`和`branchName`: ```groovy pipeline...

    Pro Continuous Delivery With Jenkins 2.0

    Jenkins 2.0在原有基础上引入了Pipeline as Code的理念,允许用户用Groovy脚本定义整个CI/CD流程,并将其保存在版本控制系统中。这种方式增强了流程的可重复性和可维护性。例如,你可以创建一个pipeline,从源代码...

    Android Studio2.2中JNI的简单使用代码

    在Java类中声明本地方法,使用`native`关键字修饰。例如: ```java public class JniDemo { static { System.loadLibrary("jnidemo"); // 加载名为jnindemo的本地库 } public native String stringFromJNI(); ...

    android jni ndk so文件的使用

    3. **编写Java代码**:在对应的Java类中,使用`native`关键字声明对应C函数,并在`System.loadLibrary("mylibrary")`中指定.so库的名字。 ```java public class MyActivity extends AppCompatActivity { static { ...

    android-jni操作指南android-jni操作指南

    在Java类中,使用`native`关键字声明本地方法,例如: ```java public class MyActivity extends AppCompatActivity { static { System.loadLibrary("mylibrary"); } native void doSomething(); } ``` ...

    编写第一个NDK程序

    `JNIEXPORT`和`JNIEXPORT`是导出函数的关键字,`JNIEnv*`和`jobject`是JNI函数的通用参数。 然后,我们需要创建一个CMakeLists.txt文件,告诉CMake如何构建我们的原生库。在这个文件中,我们将源文件添加到目标中,...

    AndroidStudioJNIGradle4.0

    使用 `JNIEXPORT` 和 ` JNICALL` 关键字定义方法,同时用 `JNIEXPORT` 定义返回类型,` JNICALL` 定义调用约定。然后使用 `javah` 或者 Android Studio 自动生成的 `JNIHeader` 功能来生成对应的头文件。 4. **实现...

    jenkinsPipeline:倾斜的詹金斯管道

    它通过`pipeline`、`stage`、`step`等关键字来定义流程。 - **Scripted Pipeline**:另一种模式,更灵活但更复杂,直接在Groovy脚本中编写所有逻辑,适用于更复杂的自动化需求。 2. **Jenkinsfile** 每个Pipeline...

    android调用第三方so库

    这个类通常会包含`native`关键字修饰的方法,表示这些方法将在C/C++代码中实现。例如: ```java public class NativeHelper { static { System.loadLibrary("SoTest"); // 加载名为SoTest的.so库 } public ...

Global site tag (gtag.js) - Google Analytics