考慮一個POJO具有n個屬性。如何獲得表示POJO的填充屬性(分配值/非空值)數量的百分比值?
POJO是MySql數據庫中的一個實體,我使用Java,Hibernate和Spring。計算表示填充的屬性數量的Java對象的百分比
0
A
回答
2
嘿,你可以這樣做:
public class CountReflection {
public static void main(final String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
PoJo p = new PoJo();
p.setA("a");
Field[] fields = p.getClass().getDeclaredFields();
int amountOfFields = 0;
int amountOfFieldsNotNull = 0;
for (Field field : fields) {
amountOfFields++;
Field declaredField = p.getClass().getDeclaredField(field.getName());
declaredField.setAccessible(true);
Object value = declaredField.get(p);
if (value != null) {
amountOfFieldsNotNull++;
}
}
System.out.println("amountOfFields " + amountOfFields);
System.out.println("amountOfFieldsNotNull " + amountOfFieldsNotNull);
float percent = (amountOfFieldsNotNull * 100.0f)/amountOfFields;
System.out.println("percent of not null " + percent);
}
}
隨着POJO:
public class PoJo {
private String a;
private String b;
private String c;
private String d;
private String e;
public String getA() {
return a;
}
public void setA(final String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(final String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(final String c) {
this.c = c;
}
public String getD() {
return d;
}
public void setD(final String d) {
this.d = d;
}
public String getE() {
return e;
}
public void setE(final String e) {
this.e = e;
}
}
+0
謝謝。它適合我。 –
+0
欣賞投票並接受答案。 – kism3t
相關問題
- 1. 計算對數百分比
- 2. 計算XAML元素的填充寬度的百分比
- 3. 填充對象的屬性
- 4. 計算數字列表的百分比
- 5. Android的Java的百分比計算
- 6. 計算進度條的百分比填充
- 7. 計算填充顏色在特定ROI中的百分比?
- 8. 計算多邊形/形狀/ UIBezierPath中的填充百分比
- 9. 商業對象計算百分比
- 10. 計算唯一性的百分比
- 11. 如何計算Java中的百分比?
- 12. 如何計算Java中的百分比?
- 13. Java:部分填充圓並放入其中的百分比數
- 14. 百分比表計算
- 15. 計算百分比的
- 16. 計算VB.NET的百分比
- 17. 計算豬的百分比
- 18. 計算百分比BigDecimals的
- 19. 顯示HTML計算的百分比%從靜態數量
- 20. 計算組數百分比(*)
- 21. 數學計算百分比
- 22. Java根據數組列表中的項計算百分比
- 23. 計算投票圖表的百分比
- 24. 如何計算表中的百分比
- 25. 計算百分比
- 26. 計算百分比
- 27. 計算百分比
- 28. 計算百分比
- 29. 計算百分比
- 30. 計算百分比
要進行這樣的計算在哪裏?在數據庫本身?如果你想用Java來理解你的POJO領域,那麼應該明白怎麼做。 –
你需要爲一個班級做這個嗎?如果是這樣,最簡單的方法是隻寫一個方法,依次檢查每個屬性。如果你需要檢查多個類,那麼也許考慮使用反射。 – Sam
請添加你已經完成/嘗試到目前爲止,所以我們可以幫助你,代碼示例在這裏非常有幫助。但我相信你可以使用反射 - 雖然它可能不是最好的方式,但我不知道它是否可用,因爲我自己還沒有使用反射。然而,這可能值得調查。 – DCON