`
bolan392
  • 浏览: 277014 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

final方法参数

 
阅读更多

在看《java编程思想》final这一块时,发现final方法参数这个在项目中应该比较常用到的,所以在博客上记录下。

 

 

   先直接上代码:

 

Java代码 复制代码 收藏代码
  1. public class ParamTest {   
  2.        
  3.     public void getParamName(final User user){   
  4.        // user = new User();  由于是final的,所以不能改变原先参数的引用,不然会报错   
  5.         user.setName("change bob");   
  6.         System.out.println("====the name is " + user.getName());   
  7.     }   
  8.        
  9.     public static void main(String[] args) {   
  10.         User user = new ParamTest().new User();   
  11.         user.setId(1);   
  12.         user.setName("bob");   
  13.            
  14.         ParamTest test = new ParamTest();   
  15.         test.getParamName(user);   
  16.     }   
  17.        
  18.     /**  
  19.      * 定义一个User内部类  
  20.      * @author antty  
  21.      *  
  22.      */  
  23.     class User{   
  24.         int id;   
  25.         String name;   
  26.           
  27.         public int getId() {   
  28.             return id;   
  29.         }   
  30.           
  31.         public void setId(int id) {   
  32.             this.id = id;   
  33.         }   
  34.           
  35.         public String getName() {   
  36.             return name;   
  37.         }   
  38.           
  39.         public void setName(String name) {   
  40.             this.name = name;   
  41.         }   
  42.     }   
  43.        
  44. }  
public class ParamTest {
    
    public void getParamName(final User user){
       // user = new User();  由于是final的,所以不能改变原先参数的引用,不然会报错
        user.setName("change bob");
        System.out.println("====the name is " + user.getName());
    }
    
    public static void main(String[] args) {
        User user = new ParamTest().new User();
        user.setId(1);
        user.setName("bob");
        
        ParamTest test = new ParamTest();
        test.getParamName(user);
    }
    
    /**
     * 定义一个User内部类
     * @author antty
     *
     */
    class User{
        int id;
        String name;
       
        public int getId() {
            return id;
        }
       
        public void setId(int id) {
            this.id = id;
        }
       
        public String getName() {
            return name;
        }
       
        public void setName(String name) {
            this.name = name;
        }
    }
    
}

 

    在项目开发过程中,我们常常会传某些entity,并对entity里面的属性进行修改,为了防止参数引用被重置,推荐在方法参数上加上“final”,进行修饰.

分享到:
评论

相关推荐

    Java final关键字

    // final方法参数 } } ``` 在上面的例子中,`constant`、`local`和`argFinal`都是`final`变量,它们的值在声明后都无法改变。 其次,`final`关键字可以用于声明方法。当一个方法被声明为`final`时,意味着这个...

    Java关键字final、static使用总结

    在 Java 编程语言中,final 和 static 是两个非常重要的关键字,它们可以用来修饰类、方法、变量等,了解它们的使用方法和限制非常重要。本文将详细总结 final 和 static 的使用方法和限制。 一、final 关键字 ...

    Java中final关键字详解及实例

    final关键字也可以用来声明方法参数,表示在整个方法中,不可以改变参数的值: ```java public void finalFunc(final int i, final Value value) { // i = 5; 不能改变i的值 // v = new Value(); 不能改变v的值 ...

    java中final和static的区别

    2. final 修饰方法中的参数(包括成员方法、构造方法、抽象方法):该参数只读,不可以修改其值。 3. final 修饰类(但不包括抽象类):该类不能被继承,所以类中的方法默认就是 final 方法(如:String 类)。 4....

    Java中的final关键字

    5. **final参数** - `final`修饰的形参表示该参数的值在方法体内不能改变,增强了代码的可读性和防止意外的副作用。 6. **final和多线程** - 在多线程环境下,`final`字段具有特殊的含义,它们可以被JVM保证初始...

    Java常见笔试、面试题目深度剖析 final详解

    5. **final参数** - `final`关键字也可以用于方法参数,表示参数在方法体内不能被重新赋值。这有助于代码的可读性和避免意外的修改,特别是在长方法或多线程环境中。 6. **final与效率** - Java虚拟机(JVM)可能...

    Final Effects汉化插件

    3. 应用效果:选择你需要的特效,将其拖拽到时间线中的目标视频或音频剪辑上,然后在效果控制面板调整参数以达到理想效果。 4. 预览和渲染:在预览窗口查看效果,满意后进行完整视频的渲染输出。 为了更好地使用...

    final glow插件

    XFORCE可能是破解组织的名称,他们提供了此插件的激活方法,使得用户可以在未购买的情况下试用或使用该插件。不过,需要注意的是,使用未经授权的软件可能会违反版权法,因此建议通过官方渠道购买合法授权,以支持...

    final修饰类

    当函数的参数声明为`final`时,表明该参数是只读的,不允许在方法内部改变其值,这在多线程环境下可以避免意外的修改。 总结来说,`final`关键字提供了代码的稳定性和安全性,它可以帮助开发者定义不可变的对象,...

    Final IK 1.9 Final IK 1.9

    在实际使用中,Final IK 1.9的设置可以通过Unity的Inspector窗口进行,用户可以直观地调整各个IK组件的参数,如权重、目标偏移、松弛度等,以达到理想的效果。同时,该插件还提供了可视化调试工具,便于检查IK解决...

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

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

    final关键字详细解读

    需要注意的是,final方法可以被重载,也就是说子类可以拥有与父类同名但参数不同的方法。 4. final修饰引用类型:当final修饰引用类型的变量时,该变量不能被重新赋值,即不能指向另一个对象,但是可以修改引用所...

    Final IK v1.7.unitypackage.zip

    然而,这种方法在处理复杂的交互或动态环境时可能会变得困难,例如当角色需要抓取物品或适应不平坦地形时。这时,IK就派上了用场。IK从目标位置出发,反向计算出各个关节的正确角度,使得角色的手或脚能准确地到达...

    Java 多线程与并发(6-26)-关键字- final详解.pdf

    * final修饰参数:final参数在方法中不能被修改。 二、final域重排序规则 final域重排序规则是指final域的访问顺序问题。在Java语言中,final域的访问顺序是:首先访问final域,然后访问非final域。 * final域为...

    stati、thi、supe、final关键字详解

    在这个例子中,构造器中的this.name表示将传入的参数赋值给当前对象的name属性,而在display()方法中,this.name则是指调用该方法的对象的name属性。 三、super关键字 super关键字用于访问父类的成员,包括字段和...

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

    在本文中,我们将深入探讨`final`在变量、参数、方法和类中的应用及其作用。 **1. `final`关键字用于变量** - **final基本类型变量**:当`final`用于基本类型的变量时,它被视为常量,一旦赋值后就不能更改。尝试...

    AE MetaCreations Final Effects Complete V1.0

    这些预设效果不仅方便用户快速生成复杂的特效,还能通过自定义参数进行深度调整,以满足不同的创意需求。例如,粒子系统允许创建出逼真的火焰、烟雾、雨滴等自然现象,而光效工具则能模拟各种光照环境,如聚光灯、...

    java中final和static的总结

    3. **方法参数**:如果方法参数标记为`final`,则在方法体内部无法改变该参数的值。这有助于防止意外修改。 4. **匿名内部类**:`final`可以应用于局部变量,以便在匿名内部类中使用。这是因为内部类会捕获封闭作用...

    FinalIK-1.3

    FinalIK-1.3还具有高度自定义的特性,开发者可以根据项目的需要调整IK的参数,如权重、灵敏度和约束条件等,以实现理想中的动画效果。同时,它支持骨骼层次结构的动态调整,即使在运行时也能快速适应变化,为实时...

Global site tag (gtag.js) - Google Analytics