Freemarker l oop не печатается последовательно - PullRequest
1 голос
/ 18 февраля 2020

Я пытаюсь создать код модели с помощью метода get и set из строки, разделенной запятыми. Но где-то я делаю ошибку или около того, я не понимаю это правильно.

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 я пытаюсь назначить его mappedAray и пытаюсь напечатать get и set function. Но я не получаю правильный вывод.

    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;
    }

}

Он записывает для первого параметра, а затем сеттер и геттер перепутаны.

1 Ответ

0 голосов
/ 18 февраля 2020

Вывод, который вы показываете, не может быть выводом показанного вами шаблона. Поэтому проверьте, действительно ли используется шаблон, который вы просматриваете. Потому что в противном случае шаблон должен работать, хотя он слишком сложен. Как будто вы разделяете что-то на последовательность, а затем строите из нее другую полностью идентичную последовательность. Рассмотрим это, что делает то же самое:

<#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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...