![](/img/trans.png)
[英]Generate class variable getter setter based on constructor parameters eclipse
[英]Eclipse template variable for getter and setter
我有一個小問題。 我正在嘗試為Eclipse中的變量創建用於吸氣劑的模板。 我要在我的getter方法中執行的操作是檢查變量是否為null。 如果為null,我想為其分配一個值。 但是問題是我需要將方法的返回值轉換為getter返回類型。 我無法處理。 這是我想要的代碼:
Integer someInt;
Double someDoub;
Long someLong;
public Integer getSomeInt(){
if(someInt == null) someInt = (Integer) new Generator().evaluate();
return someInt;
}
public Double getSomeDoub(){
if(someDoub == null) someDoub = (Double) new Generator().evaluate();
return someDoub;
}
這是我要生成的代碼。 這是我鍵入的模板:
if( ${field} == null){
${field} = ( ${return_type} ) new Generator().evaluate();
}
return ${field};
我一輸入這個。 Eclipse表示return_type是未知的。 請幫忙。
非常感謝您的寶貴時間。
這將完成您的工作:
if( ${field} == null){
${field} = ${field}.getClass().cast( new Generator().evaluate());
}
return ${field};
Eclipse沒有提供在getter / setter代碼模板(即“ Generate Getters and Setters”工具使用的模板)中執行此操作的方法。 僅支持“插入變量”列表中的變量。
${return_type}
僅可用於常規模板(即,您可以使用代碼完成熱鍵調用的類型)。
作為一種可能的解決方法,您可以創建一個通用的靜態工廠方法來生成默認對象,而無需進行強制轉換:
public class MyBean {
Integer someInt;
Double someDoub;
public Integer getSomeInt(){
if (someInt == null) someInt = GeneratorUtil.createAndEvaluate();
return someInt;
}
public Double getSomeDoub(){
if (someDoub == null) someDoub = GeneratorUtil().createAndEvaluate();
return someDoub;
}
}
public class GeneratorUtil {
@SuppressWarnings("unchecked")
public static <T> T createAndEvaluate() {
return (T) new Generator().evaluate();
}
}
您的Generator
類是否使用某種反射類型來確定要生成哪種類型的對象?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.