java - Spring ,Java : Passing Generic object List as return type

标签 java spring spring-mvc generics casting

我正在开发一个 Spring-MVC 应用程序,其中根据用户设置的模式,我必须返回 Object1 或 Object2 的列表。理想情况下,我可以创建两个 Controller 方法并适本地发送列表,但我想知道有什么方法可以在该 Controller 方法中发送任何类型的列表。

Controller 方法:

@PreAuthorize("hasRole('ROLE_USER')")
@RequestMapping(value = "/findnotebydays/{days}/{canvasid}/{mode}")
public @ResponseBody List<Inotes> findNotesByDays(@PathVariable("days")int days, @PathVariable("canvasid")int canvasid,
                                                  @PathVariable("mode")boolean mode ){

    if(!mode){
        return this.groupNotesService.findGroupNotesByDays(days,canvasid);
    } else {
        return this.notesService.findNotesByDays(days,canvasid);
    }
}

基本上,如果 mode 为 false,我想返回 List<GroupNotes>如果模式为 true,我想返回 List<Notes> 。我天真的方法,我以为我可以说它是一个对象并返回,但似乎不起作用。请让我知道我能做什么。多谢。 :-)

更新

GroupNotes 模型类:

@Entity
@Table(name="groupnotes")
public class GroupNotes implements Inotes{

  @Id
    @Column(name="mnoteid")
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "mnote_gen")
    @SequenceGenerator(name = "mnote_gen",sequenceName = "mnote_seq")
    @org.hibernate.annotations.Index(name = "mnoticesidindex")
    private int mnoticesid;

    @Column(name = "mnotetext")
    private String mnotetext;
//Other variables, getters, setters ignored
}

注释模型类:

@Entity
@Table(name="note")
public class Notes implements Inotes{

    @Id
    @Column(name="noteid")
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "note_gen")
    @SequenceGenerator(name = "note_gen",sequenceName = "note_seq")
    @org.hibernate.annotations.Index(name = "noteidindex")
    private int noticesid;

    @Column(name = "notetext")
    private String notetext;
//Other variables, getters, setters ignored
}

接口(interface)注释:

package com.journaldev.spring.model;


public interface Inotes {
}

最佳答案

遵循干净的编码风格,如果您必须将 boolean 值传递给一个方法,该方法实际上会做两件不同的事情,而您希望一个方法只做一件事情。

我只会做两个 Controller 操作,这对于用户和稍后的代码维护者来说更加清晰。

关于java - Spring ,Java : Passing Generic object List as return type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30868002/

相关文章:

Java正则表达式从日志文件中获取子度量

jdbc - 无法在简单的 java 类中加载 OracleDriver 类

java - 如何自定义 Spring Rest Controller 的 json 输出

java - spring 4 枚举作为 Controller 参数

java - 在方法中模拟新对象的创建

java - 在应用程序包中包含 JVM 的副本

java - JPA多对多关系查询问题

java - CSS 和 JS 未加载 - net :ERR_ABORTED and 404() Java Spring Boot

java - 将对象从 Spring HandlerInterceptor 传递到 Servlet Filter

validation - 如何从表单中的集合中选择实体? Spring MVC 和 Thymeleaf