gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:23:03 25 4
gpt4 key购买 nike

我正在开发一个 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/

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