getter_getters - CSDN
精华内容
参与话题
  • 对象的 getter 属性 getter 方法模板: this.property = { valueOf : function(){return ...}, toString : function(){return ...} }   例子: fun...

    对象的 getter 属性

        getter 方法模板:

            this.property =
            {
                valueOf : function(){return ...},
                toString : function(){return ...}
            }
            

     


        例子:

    function Student1(name, age, gender)
            {
                this.name = name;
                this.age = age;
                this.gender = gender;
               
                // getter 方法的形式获得信息
                this.getInfo = function ()
                {
                    return "Hello ! My name is " + name
                           + "\n I am " + age + " years old !"
                           + "\nI'a " + gender;
                }
            }
    
            function Student2(name, age, gender)
            {
                this.name = name;
                this.age = age;
                this.gender = gender;
               
                //定义成属性  模拟getter方法  来获取信息
                this.info =
                {
                    valueOf:function()
                    {
                        return "Hello ! My name is " + name
                           + "\n I am " + age + " years old !"
                           + "\nI'a " + gender;
                    },
                    toString:function()
                    {   
                        return "Hello ! My name is " + name
                           + "\n I am " + age + " years old !"
                           + "\nI'a " + gender;
                    }
                }
            }
    
            var stu1 = new Student1("xiaoming", 22, "male");
            var stu2 = new Student2("xiaofang", 21, "famale");
    
            alert(stu1.getInfo()); // getter 方法
            alert(stu2.info); // 对象的 getter 属性

     

           
    对象的setter属性目前只能由 setXxx 方法来实现,目前的 ECMA Script V3 不支持
    setter 属性。

    展开全文
  • 计算属性的getter和setter

    千次阅读 2018-09-02 11:00:11
    先来看把计算属性写成函数的样式: 现在改成对象的样式,并且使用get和set ...这两种方式显示的结果是一样的 ...页面上也会跟着变动,这是因为当你对fullName赋值时,传入的值被保存到value中,...

    先来看把计算属性写成函数的样式:

    现在改成对象的样式,并且使用get和set

    这两种方式显示的结果是一样的

    这样子也能够改变页面上的值

    但是当我想对fullName进行赋值的时候这是不行的

    系统会说fullName没有setter函数

    下面我使用set方法

    页面上也会跟着变动,这是因为当你对fullName赋值时,传入的值被保存到value中,然后被以空格分割成一个数组,分别赋给firstName和lastName,当firstName和lastName发生改变时,又会触发计算属性重新计算,从而改变页面结果。

    展开全文
  • 强大的lombok注解@Getter @Setter详解

    万次阅读 2018-12-26 13:49:21
    1.为什么强大?  项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,尽管IDE工具都会帮我们生成...而使用了lombok之后,就不需要编写或生成setter或getter等方...

    1.为什么强大?

          项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,尽管IDE工具都会帮我们生成。但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok之后,就不需要编写或生成setter或getter等方法了,而使用lombok注解的方式,在编译生成的字节码文件中就会存在setter/getter等方法,这样就大大减少了代码量,方便了代码的维护。

    2.安装lombok插件

    使用前需要安装lombok插件

    IDEA插件安装地址:https://jingyan.baidu.com/article/0a52e3f4e53ca1bf63ed725c.html

    Eclipse插件安装地址:https://jingyan.baidu.com/article/b7001fe1aaa0c30e7282dd8a.html

    3.插件配置

    在使用lombok插件的时候,还要进行添加lombok的Maven依赖,代码示例: 

    		<!--lombok 注解-->
    		<dependency>
    			<groupId>org.projectlombok</groupId>
    			<artifactId>lombok</artifactId>
    			<version>1.16.10</version>
    		</dependency>

    4.常用的注解

    @Setter @Getter :可以为相应的属性自动生成Getter/Setter方法

    package com.example.springboot.model;
    
    import lombok.Getter;
    import lombok.Setter;
    import lombok.ToString;
    
    import java.util.Date;
    
    @Setter
    @Getter
    @ToString
    public class User {
        private Integer id;
    
        private String name;
    
        private Integer age;
    
        private String sex;
    
        private Date birthday;
    
    }

    @NonNull:该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。

    import lombok.NonNull;
    
    public class NonNullExample extends Something {
      private String name;
      
      public NonNullExample(@NonNull Person person) {
        super("Hello");
        this.name = person.getName();
      }
    }

    @Cleanup:该注解能帮助我们自动调用close()方法,很大的简化了代码。

    import lombok.Cleanup;
    import java.io.*;
    
    public class CleanupExample {
      public static void main(String[] args) throws IOException {
        @Cleanup InputStream in = new FileInputStream(args[0]);
        @Cleanup OutputStream out = new FileOutputStream(args[1]);
        byte[] b = new byte[10000];
        while (true) {
          int r = in.read(b);
          if (r == -1) break;
          out.write(b, 0, r);
        }
      }
    }

    @EqualsAndHashCode:默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。

    import lombok.EqualsAndHashCode;
    
    @EqualsAndHashCode(exclude={"id", "shape"})
    public class EqualsAndHashCodeExample {
      private transient int transientVar = 10;
      private String name;
      private double score;
      private Shape shape = new Square(5, 10);
      private String[] tags;
      private int id;
      
      public String getName() {
        return this.name;
      }
      
      @EqualsAndHashCode(callSuper=true)
      public static class Square extends Shape {
        private final int width, height;
        
        public Square(int width, int height) {
          this.width = width;
          this.height = height;
        }
      }
    }

    @ToString:类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。

    代替效果为:

      @Override public String toString() {
          return "Square(super=" + super.toString() + ", width=" + this.width + ", height=" + this.height + ")";
        }
      }

    @Data:注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。这个注解可是说是非常强大。

    5.lombok的工作原理:

    Lombok本质上就是一个实现了“JSR 269 API”的程序。在使用javac的过程中,它产生作用的具体流程如下:

    1. javac对源代码进行分析,生成了一棵抽象语法树(AST)
    2. 运行过程中调用实现了“JSR 269 API”的Lombok程序
    3. 此时Lombok就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
    4. javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块)

    6.总结:

            lombok的使用通过注解的方式减少了getter,setter的手动增加减少了代码量,增加开发效率,特别是在改动属性名字时候维护起来也特别容易。但是同时它也减少了代码的可阅读性降低了源码的舒适度。

    展开全文
  • 我们在@property的()中使用automatic等修饰符....那这又是什么意思呢.getter代表是取的方法.这种使用方式一般都用到BOOL值里面.比如getter=isSelected. @property (nonatomic, getter=isSelected) BOOL  

    我们在@property的()中使用automatic等修饰符.来表示这个变量的属性.有些使用getter或者是setter修饰符的字段可能使用="".

    那这又是什么意思呢.getter代表是取的方法.这种使用方式一般都用到BOOL值里面.比如getter=isSelected.

    @property (nonatomic, getter=isSelected) BOOL         selected;                   // set selected state (title, image, background). default is NO. animated is NO

    这表示我们可以用selected取到BOOL或者是=后面的isSelected取到BOOL值.

    =一般就是这个作用

    展开全文
  • 今天小编就为大家分享一篇关于Vue核心概念Getter的使用方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • @Getter和@Setter

    2018-10-15 21:39:00
    @Getter和@Setter 出现的目的是 public int getFoo() {return foo;} 不需要在写get 和 set 方法。 您可以使用@Getter或@Setter来注释任何字段,以使lombok自动生成默认的getter / setter。 lombok生成的getter /...
  • 共有两个dll文件 放在我的文档-Visual Studio 2005(或2008)-Addins文件夹下(如果没有则新建一个) 然后重启vs 在工具-自定义-命令-外接程序下就可以找到了 然后将其拖到工具栏中就行了
  • vuex概念之Getter用法详解

    千次阅读 2019-05-08 23:57:00
    Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。 以官网的例子来说明,...
  • idea添加getter、setter方法的快捷键

    万次阅读 多人点赞 2016-08-26 17:17:25
    alt+insert
  • mybatis报错There is no getter for property named '***' in 'class ***',检查一看是xml中映射字段拼写错误,写代码要专心啊
  • 在右侧搜索 Lombok install,重启idea即可
  • 使用lombok时@Setter @Getter无效

    千次阅读 2019-02-23 16:05:19
    lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter @Getter,可以替代代码中的getter和setter方法,虽然eclipse自带的setter、getter代码生成也不需要我们手动的去敲写,但是使用@Setter @Getter这样的...
  • C#中的setter和getter

    万次阅读 2017-06-03 15:39:21
    C#中的setter和getter和Objective C中的setter和getter(dot syntax / 点语法)有异曲同工之妙,现简要介绍一下C#中的setter和getter: using System; class A { private int data; public int MyData { set {
  • IDEA 添加 getter、setter 方法的快捷键

    千次阅读 2019-01-02 17:00:23
    IDEA 中添加 getter、setter 方法的快捷键 快捷键:Alt + insert 提示: (1)如果自己键盘有独立数字键盘,那个 0 下面有一个 insert,就使用这个,先按一下 Num lk 键关闭数字键! 再使用快捷键:Alt + insert (2...
  • There is no getter for property named ‘xxxx’ in ‘class java.lang.Integer 这是在百度上查到的,出现多的问题。不是Integer就是String这些,然后百度上一般就是给出这种方案: 如果参数是#{oneParameter}...
  • lombok @Getter @Setter 使用注意事项

    万次阅读 2018-04-05 01:40:49
    lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter @Getter,可以替代代码中的getter和setter方法,虽然eclipse自带的setter、getter代码生成也不需要我们手动的去敲写,但是使用@Setter @Getter这样的...
  • Exception in thread "main" org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for pro...
  • 1、在编辑区点击,或者使用快捷键Command+N: 2、得到如下界面: 3、选择getter and setter 点击OK完成创建
  • 在写SSM框架的时候,请求报出 There is no getter for property named 'id' in 'class java.lang.Integer'这个问题 但是实际上实体类中写了相关的方法,最后找到问题出现在Mapper接口中, List&lt;User&...
  • 首先shift+alt+s,再r,最后alt+a。
1 2 3 4 5 ... 20
收藏数 197,502
精华内容 79,000
关键字:

getter