我正在尝试使用逗号分隔的字符串使用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搞砸了。
您显示的输出不能是您显示的模板的输出。因此,请检查您正在查看的模板是否实际使用。因为否则模板应该可以工作,尽管它不必要地过于复杂。就像您将某物拆分为一个序列,然后从中构建另一个完全相同的序列一样。考虑一下,它的作用相同:
<#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>