Freemarker循环似乎无法顺序打印

问题描述 投票:1回答:1

我正在尝试使用逗号分隔的字符串使用getter和setter制作模型代码。但是在某个地方我犯了一个错误,或者说我做错了。

package ${packageName};


    public class modelName{

    <#assign x = ''>
    <#list parameters?split(',') as x>
    private ${x};
    <#assign mappedArray = []>
    <#assign y = ''>
    <#list x?split(r'\s+', 'r') as y>
    <#assign mappedArray = mappedArray + [y]>
    </#list>

    public ${mappedArray[0]} get${mappedArray[1]}(){
    return ${mappedArray[1]};
    }

    public void set${mappedArray[1]}( ${mappedArray[0]} ${mappedArray[1]}){
    this.${mappedArray[1]} = ${mappedArray[1]};
    }

    </#list>
    }

我将int id, String name作为参数。我期望将其拆分,然后得到x。从x,我试图将其分配给mappedAray,并尝试打印get和set函数。但是我没有得到正确的输出。

    package com.vindys.myapplication;


public class modelName {

    private int id;
    private String name;

    public getString() {
        return String;
    }

    public int getid() {
        return id;
    }

    public void setid(int id) {
        this.id = id;
    }

    public void setString(String) {
        this.String = String;
    }

}

它为第一个参数编写,后来的setter和getter搞砸了。

java templates freemarker
1个回答
0
投票

您显示的输出不能是您显示的模板的输出。因此,请检查您正在查看的模板是否实际使用。因为否则模板应该可以工作,尽管它不必要地过于复杂。就像您将某物拆分为一个序列,然后从中构建另一个完全相同的序列一样。考虑一下,它的作用相同:

<#list parameters?split(',') as param>
<#assign paramWords = param?word_list>
<#assign type = paramWords[0]>
<#assign name = paramWords[1]>
private ${type} ${name};

public ${type} get${name?cap_first}(){
    return ${name};
}

public void set${name?cap_first}(${type} ${name}){
    this.${name} = ${name};
}
</#list>
© www.soinside.com 2019 - 2024. All rights reserved.