如何使用枚举创建通用API,用于在Java中搜索和过滤POJO?
假设您有一个名为Field的特定枚举:如何使用枚举创建通用API,用于在Java中搜索和过滤POJO?,java,enums,Java,Enums,假设您有一个名为Field的特定枚举: public enum Field { ALBUM, DESCRIPTION } 另一个枚举名为: public enum Operator { CONTAINS, EQUALS, LESS_THAN, GREATER_THAN } 您有一个相应的Java接口,名为Music public interface Music { String getAlbum(); String ge
public enum Field {
ALBUM,
DESCRIPTION
}
另一个枚举名为:
public enum Operator {
CONTAINS,
EQUALS,
LESS_THAN,
GREATER_THAN
}
您有一个相应的Java接口,名为Music
public interface Music {
String getAlbum();
String getDescription();
}
该实现看起来如下所示:
public class MusicImpl implements Music {
@Override
public String getYear() {
return Field.Year.toString();
}
@Override
public String getDescription() {
return Field.DESCRIPTION.toString();
}
@Override
public Object getField(Field field) {
Object myObject = field.getClass();
return myObject;
}
}
您将如何使用此API实现以下两种方法
public class MyApp {
@Override
public List<Music> searchMusic(String query) {
// What to put in this?
}
@Override
public List<Music> filterMusic(Field field, Operator op, String query) {
// What to put in?
}
}
公共类MyApp{
@凌驾
公共列表搜索音乐(字符串查询){
//这里面放什么?
}
@凌驾
公共列表过滤器音乐(字段、运算符操作、字符串查询){
//放什么进去?
}
}
这是你需要做的作业吗?正确答案:不会编译公共列表搜索音乐(字符串查询)
中的查询
?我想行字段.DESCRIPTION.toString()
只会返回字符串“DESCRIPTION”。我很确定这不是你想要的。@Lars Blumberg正在尝试一个编码难题…@SpaceTrucker查询只是一个字符串,不是Hibernate/JPA。@Stewart谢谢