有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

注释Java getter和setter

有没有更好的标准方法在Java中创建getter和setter

必须为每个变量显式定义getter和setter,这相当冗长。有更好的标准注释方法吗

春天有这样的东西吗

甚至C#也有属性


共 (6) 个答案

  1. # 1 楼答案

    <>我不确定你是否认为它是“标准”,但是Project Lombok解决了这个问题。它们使用注释来替换Java的许多冗长内容

    有些人正在寻找其他Java同级语言,如Groovy或Scala。恐怕JSR需要几年的时间才能找到一种“标准化”的方法,用Java来“修复”这个问题

  2. # 2 楼答案

    Eclipse有一个上下文菜单选项,可以为您自动生成这些内容,我相信许多其他IDE都是这样做的

  3. # 4 楼答案

    我创建了一些不特定于eclipse的注释

    http://code.google.com/p/javadude/wiki/Annotations

    例如:

    package sample;
    
    import com.javadude.annotation.Bean;
    import com.javadude.annotation.Property;
    import com.javadude.annotation.PropertyKind;
    
    @Bean(properties={
        @Property(name="name"),
        @Property(name="phone", bound=true),
        @Property(name="friend", type=Person.class, kind=PropertyKind.LIST)
    }) 
    public class Person extends PersonGen {
    }
    

    我的注释生成一个超类;我认为Lombok修改了正在编译的实际类(Sun官方不支持该类,并且可能会中断—我可能对它的工作方式有误解,但根据我所看到的情况,他们一定在这么做)

    享受吧! --斯科特

  4. # 5 楼答案

    作为一种可能的选择,您是否尝试过Scala?它可以编译成Java字节码,并且有许多有趣的快捷方式,这些快捷方式可以使您作为Java程序员的生活变得更轻松

    属性,例如:

    case class Person(var name:String, 
                      var age:Int);
    val p = Person("John", 4)
    p.name
    p.name = "Charlie"
    p.name
    

    以及输出:

    defined class Person
    p: Person = Person(John,4)
    res7: String = John
    res8: String = Charlie
    
  5. # 6 楼答案

    大多数IDE都提供了生成代码的快捷方式(例如,Eclipse:Right click->;Source->;Generate getter&;setter),尽管我意识到这可能不是您想要的答案

    一些IOC框架允许您对属性进行注释,以便它们可以在框架的上下文中使用,例如Tapestry IOC和最新的Spring,我认为(但这种使用仅限于框架使用)