有 Java 编程相关的问题?

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

java如何仅从Eclipse中声明的变量生成setter?

这里的问题是,我正在编写非常大的地图。 映射器将数据从BeanA映射(复制)到BeanB

要将字段从BeanA复制到BeanB,我使用mapper中的方法执行以下操作:

    public static BeanB mapToBeanB(BeanA input){
            BeanB output = new BeanB();
            output.setName(input.getName());
            output.setvariable1(input.getInfo());
            output.set***** (and so on)
            .......
            return output;
    }

我必须从每个bean复制45到130个字段(bean属性),我有27个bean要复制。所以你可以想象这需要付出多少努力

我的问题是:有没有办法让eclipse为我生成所有这些setter?
请注意,我不是指通常使用以下方法生成的getter和setter:

[在编辑器内单击鼠标右键->;源->;生成getter和setter] 因为这只在bean本身内部起作用。我希望能够仅在bean外部生成这些setter

我希望问题是清楚的

public class BeanB {
    private String name;
    private String nickname;
    private String variable1;
    private String variable2;
    private String variable3;

    public String getName() {
            return name;
    }

    public String getNickname() {
    return nickname;
    }

    public void setNickname(String nickname) {
    this.nickname = nickname;
    }

    public String getVariable1() {
        return variable1;
    }

    public void setVariable1(String variable1) {
        this.variable1 = variable1;
    }

    public String getVariable2() {
        return variable2;
    }

    public void setVariable2(String variable2) {
        this.variable2 = variable2;
    }

    public String getVariable3() {
        return variable3;
    }

    public void setVariable3(String variable3) {
        this.variable3 = variable3;
    }

    public void setName(String name) {
        this.name = name;
    }
}

共 (2) 个答案

  1. # 1 楼答案

    正如唐所说,Eclipse有一个生成getter和setter的向导。他没有提到的是,向导有一个按钮,可以选择生成的所有setter

    (我找到了一个指向Eclipse帮助信息的链接,却发现它没有描述这个按钮。呸!)

  2. # 2 楼答案

    在代码中生成getter/settes:

    在编辑器内单击鼠标右键->;来源->;生成getter和setter

    如果要同时指定多个setter的调用,如

    BeanB result=new BeanB();
    result.setNickname("nickname");
    result.setVariable1();
    result.setVariable1();
    

    等等,我认为eclipse中没有这样的功能

    但是为什么不把所有的类变量都放到一个构造函数中,然后用这个构造函数在映射器中创建一个新对象呢?这样就不需要指定任何setter