[英]How I create new java object class with only certain field?
我有這樣的 java class:
public class FirstTypeMD extends BaseParams {
Integer framePerSec;
public FirstTypeMD(Integer energyCons, Integer mass, Integer tempRange, Boolean electricProtect,
Boolean radioProtect, Integer framePerSec) {
super(energyCons, mass, tempRange, electricProtect, radioProtect);
this.framePerSec = framePerSec;
}
public void setFramePerSec(Integer framePerSec) {
this.framePerSec = framePerSec;
}
public Integer getFramePerSec() {
return framePerSec;
}
}
當我想創建一個新的 class object 我必須這樣做:
new FirstTypeMD(energyCons, mass, tempRange, electricProtect, radioProtect, framePerSec)
但我想只傳遞第一個參數,例如:
new FirstTypeMD(energyCons)
也許我的總體想法是錯誤的,所以我想描述一下我想要做什么。 我正在嘗試過濾此 class 的對象數組。 我現在可以這樣做:
ArrayList<FirstTypeMD> resArr = new ArrayList<FirstTypeMD>(resArr1.stream()
.filter(c -> c.electricProtect == elProtect.getSelection()
&& c.radioProtect == radProtect.getSelection())
.collect(Collectors.toList()));
但例如我想只考慮這個 class 的一個或兩個字段。 當然我可以添加很多代碼並最終解決我的問題,但也許我可以以更好的方式做到這一點?
我有一個想法:創建一些最終FirstTypeMD finalConf;
class object 只有重要的字段,而不是嘗試比較對象:
ArrayList<FirstTypeMD> resArr = new ArrayList<FirstTypeMD>(resArr1.stream()
.filter(c -> c.electricProtect == finalConf.electricProtect).collect(Collectors.toList()));
但我收到錯誤消息說我沒有一些字段是 null 像這樣:
Cannot invoke "testwizard.wizards.FirstTypeMD.setElectricProtect(java.lang.Boolean)" because "this.this$0.finalConf" is null
我不知道也許我想要一些不可能的事情,但我決定問你:)
public class Main {
FirstTypeMD firstTypeMD = new FirstTypeMD(1);
}
class FirstTypeMD extends BaseParams {
Integer framePerSec;
public FirstTypeMD(Integer energyCons, Integer mass, Integer tempRange, Boolean electricProtect,
Boolean radioProtect, Integer framePerSec) {
super(energyCons, mass, tempRange, electricProtect, radioProtect);
this.framePerSec = framePerSec;
}
public FirstTypeMD(Integer energyCons) {
}
public void setFramePerSec(Integer framePerSec) {
this.framePerSec = framePerSec;
}
public Integer getFramePerSec() {
return framePerSec;
}
}
在這里我使用了兩個構造函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.