gpt4 book ai didi

Java在循环子句上获取类字段并检查值

转载 作者:行者123 更新时间:2023-11-29 04:42:41 25 4
gpt4 key购买 nike

我的数据库模型中关于 Relam 对象的下面这个类

public class ModelMarketBanners extends RealmObject {
@PrimaryKey
private String id;
private String marketId;
private String imageFileName;
private String title;
}

据我所知,我可以通过类 getter 获取模型字段数据,例如 getId(),但我想获取文件名而不是循环子句上的类 getter 方法,例如使用 for 以显示所有类字段,例如 idmarketId,我该怎么做?

我想获取所有的文件数据,如果哪一个不是空的,则用该数据附加布局,而不是编写多行程序来检查和附加该数据

例如:

for(int i=0; i> model.field_count; i++){
if (model.field.lenght() > 0) Log.v("data is: ", model.field);
}

代替

SampleModel model = realm.where(SampleModel.class).findfirst();
if(model.getId().lenght() > 0)
Log.v("data is",model.getId());
if(model.getmarketId().lenght() > 0)
Log.v("data is",model.getmarketId());
if(model.getImageFileName().lenght() > 0)
Log.v("data is",model.getImageFileName());

最佳答案

有一种方法,使用反射:

    for (Field field : ModelMarketBanners.class.getDeclaredFields()) {
for (Method method : ModelMarketBanners.class.getMethods()) {
if ((method.getName().startsWith("get")) && (method.getName().length() == (field.getName().length() + 3))) {
if (method.getName().toLowerCase().endsWith(field.getName().toLowerCase())) {
try {
Object value = method.invoke(model);
if (!TextUtils.isEmpty(String.valueOf(value)) {
Log.v("data is: ", String.valueOf(value));
}
} catch (IllegalAccessException | InvocationTargetException e) {
}

}
}
}
}

关于Java在循环子句上获取类字段并检查值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com