有 Java 编程相关的问题?

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

java Freemarker循环似乎没有按顺序打印

我试图从逗号分隔的字符串中使用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就搞乱了


共 (1) 个答案

  1. # 1 楼答案

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

    <#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>