Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用枚举创建通用API,用于在Java中搜索和过滤POJO?_Java_Enums - Fatal编程技术网

如何使用枚举创建通用API,用于在Java中搜索和过滤POJO?

如何使用枚举创建通用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

假设您有一个名为Field的特定枚举:

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谢谢