`

方法参数前加final的作用

    博客分类:
  • java
阅读更多
2009-06-28 02:23

在方法参数前面加final关键字就是为了防止数据在方法体中被修改。这里主要分两种情况:第一,用final修饰基本数据类型;第二,用final修饰引用类型。

第一种情况,修饰基本类型(非引用类型)。这时参数的值在方法体内是不能被修改的,即不能被重新赋值。否则编译就通不过。例如:

  1. public void testInt( final int param1){
  2. param1= 100 ;
  3. }

 

在方法体内修改了基本数据类型变量的值,在Eclipse中则会提示:“ The final local variable param1 cannot be assigned. It must be blank and not using a compound assignment.“

 

第二种情况,修饰引用类型。这时参数变量所引用的对象是不能被改变的。作为引用的拷贝,参数在方法体里面不能再引用新的对象。否则编译通不过。例如:

  1. public void testFinal2( final Objectparam2){
  2. param2= new Object();
  3. }

在方法体内修改了参数的引用,在Eclipse中则会提示:“ The final local variable param2 cannot be assigned. It must be blank and not using a compound assignment.“

分享到:
评论
3 楼 longfu2012 2012-11-22  
学习了
2 楼 wpf523 2012-08-10  

1 楼 wpf523 2012-08-10  
不错,解决了我的疑惑

相关推荐

    曲线的参数方程说课final学习教案.pptx

    曲线的参数方程说课final学习教案.pptx

    Java中final作用于变量、参数、方法及类该如何处理

    Java中的final关键字非常重要,它可以应用于类、方法以及变量,下面这篇文章主要给大家介绍了关于Java中final作用于变量、参数、方法及类该如何处理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考...

    powermock源码学习 支持模拟静态方法、构造函数、final类和方法、私有方法以及移除静态初始化器的模拟工具

    PowerMock的核心功能在于其能够通过提供定制的类加载器和应用一些字节码操作技巧,实现对静态方法、构造方法、私有方法和final方法的模拟。例如,在进行单元测试时,有时候我们并不希望测试数据进入实际的数据库,...

    ClassFinal字节码加密工具-其他

    本工具加密后,原始的class文件并不会完全被加密,只是方法体被清空,保留方法参数、注解等信息,这是为了兼容spring,swagger等扫描注解的框架; 方法体被清空后,反编译者只能看到方法名和注解,看不到方法的具体...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记的方法不能被子类复写; (3).final标记的变量即成为常量,只能被赋值一次. 注意: 如果使用final来...

    Final IK 1.9最新版的插件.unitypackage

    Final IK细节: 1.Aim IK:设定一个目标,关节末端始终朝向该目标,一般用来做头部的朝向。 步骤: a、在模型头节点处添加Aim空物体并reset b、给模型添加Aim IK组件,并填上Aim Transform及根脊椎到头的4节关节...

    基于Excel的DIN5480渐开线花键参数计算.rar

    基于Excel的DIN5480渐开线花键参数计算.rar

    java为什么匿名内部类的参数引用时final?final局部变量的生命周期

    在知乎上看到了一篇帖子 在这个问题下面大家已经吵得不可开交了,看了很多篇文章,被误导进了很多的坑,发现只有下面两篇文章是写的最好的,解释的很清楚,我把两篇文章简单的总结了一下: ...1.问题的引出 ...

    Java为什么匿名内部类参数引用需要用final进行修饰?

    今天小编就为大家分享一篇关于Java为什么匿名内部类参数引用需要用final进行修饰?,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    关于final关键字的基础运用

    关于final关键字的基础运用...权限修饰符 final 返回值类型 方法名(参数列表){ //*** } 此时final的含义是声明:当前这个方法不能被覆盖重写,但不会对所在类其他方法产生影响,即为最终方法 注意:对于类和方法来说

    day022-jdk8新特性和lambda表达式 代码和笔记.rar

    1. lambda: 1. 概念:就是对函数式接口匿名内部类的简写 2. 作用:简化代码 3.... 函数式接口 变量名 = (参数1,参数2...)... 若是局部变量没有加final关键字,系统会自动添加,此后在修改该局部变量,会报错;

    Java关键字总结

    1>对于基本类型前加以final修饰,表示被修饰的变量为常数,不可以修改。一个既是static有是final的字段表示只占据一段不能改变的存储空间。 2>final用于对象应用时,final使应用恒定不变。一旦引用被初始化指向一个...

    java 模拟 面试题 答案

    方法的参数被final修饰表示在方法体内,该参数的值不可以被修改。 finally在异常处理时提供finally块来执行任何清除操作。无论有没有异常被抛出、捕捉,finally块都会被执行。 finalize是方法名。Java技术允许使用...

    rp_2-1.0.0_final_release_lorawan_新CN470标准(阿里巴巴提交).pdf

    LoRaWAN新区域参数标准(201911) 1. 包含最新CN470规范,由阿里巴巴提交 新的CN470主要包括 Channel Plan for 20MHz Antenna 与 主要包括 Channel Plan for 26MHz Antenna 两种频段

    OpenRTB-API-Specification-Version-2-5-FINAL中文版.zip

    该规范包含RTB(实时竞价)...不是所有的对象是必须的,并且每个对象可以包含多个可选参数。为了帮助 规范的firsttime读者,我们已经指出哪些字段是必不可少的,支持各种场景(旗,视频等)的最小可行的实时竞价接口

    RGB调色参数

    pr,final等软件用 调色参数参考,以图片方式呈现,更直观全面。

    jedis-2.1.0.jar +java调用Redis教程 +方法说明

    boolean renamenx final String oldkey final String newkey ">调用Redis的相关方法 字符串数据类型(String)接口说明  字符串类型是Redis中最为基础的数据存储类型 它在Redis中是二进制安全的 这便意味着该类型...

    java class加密保护(完全免费) v2.1

    很容易被反编译工具反编译,而传统的java源代码保护方法基本都是采用混淆的方式, 但这样会带来很多麻烦,而且也不能真正保护class文件, 本工具是对class文件进行加密,采用jni的方式解密运行, 加密算法达到256位...

    Java中final关键字的用法总结

    在Java中,final可以别用来修饰类、修饰方法、修饰变量和修饰参数等,这里就来简单作一个Java中final关键字的用法总结:

    crass游戏资源提取器 v0.4.14.0 final 免费版.zip

    -O对应“特殊参数”(要用显示高级参数点开);-l对应“导入索引文件”;-u对应“指定插件”。可以参照下面的例子实际看下怎么对应的。注意:千万不要把命令行中的选项本身也写到GUI中!至此,你应该会提取了。请...

Global site tag (gtag.js) - Google Analytics