Java 从一个方法返回多个值
我有一个类UserFunction,它有两个方法getAudioFunction和getPromptFunction,返回字符串值,我的问题是我想在一个方法中返回这两个值 我怎么能做到呢 UserFunction.javaJava 从一个方法返回多个值,java,Java,我有一个类UserFunction,它有两个方法getAudioFunction和getPromptFunction,返回字符串值,我的问题是我想在一个方法中返回这两个值 我怎么能做到呢 UserFunction.java public class UserFunction{ Map<String,PromptBean> promptObject=new HashMap<String,PromptBean>(); Map<St
public class UserFunction{
Map<String,PromptBean> promptObject=new HashMap<String,PromptBean>();
Map<String,AudioBean> audioObject = new HashMap<String,AudioBean>();
XmlReaderPrompt xrpObject=new XmlReaderPrompt();
public String getAudioFunction(String audioTag,String langMode )
{
Map<String, AudioBean> audioObject=xrpObject.load_audio(langMode);
AudioBean audioBean=(AudioBean)audioObject.get(audioTag);
String av=StringEscapeUtils.escapeXml(audioBean.getAudio());
return av;
}
public String getPromptFunction(String promptTag,String langMode )
{
Map<String, PromptBean> promptObject=xrpObject.load(langMode);
PromptBean promptBean= (PromptBean)promptObject.get(promptTag);
String pv=StringEscapeUtils.escapeXml(promptBean.getPrompt());
return pv;
}
}
公共类用户函数{
Map promptObject=new HashMap();
Map audioObject=new HashMap();
XmlReaderPrompt xrObject=新的XmlReaderPrompt();
公共字符串getAudioFunction(字符串audioTag、字符串模式)
{
Map audioObject=XRObject.load_audio(langMode);
AudioBean AudioBean=(AudioBean)audioObject.get(audioTag);
String av=StringEscapeUtils.escapeXml(audioBean.getAudio());
返回av;
}
公共字符串getPromptFunction(字符串promptTag、字符串模式)
{
Map promptObject=XRObject.load(langMode);
PromptBean PromptBean=(PromptBean)prompobject.get(promptag);
String pv=StringEscapeUtils.escapeXml(promptBean.getPrompt());
返回pv;
}
}
在java中,从一个方法返回多个值是不可能的。您可以将多个值设置为Map
或List
或创建自定义类并返回该对象
public Map<String,String> getAudioAndPromptFunction(String audioTag,String langMode )
{
Map<String,String> map =new HashMap();
...
map.put("audioBean",StringEscapeUtils.escapeXml(audioBean.getAudio()));
map.put("promptBean",StringEscapeUtils.escapeXml(promptBean.getPrompt());
return map;
}
您需要返回一个包含这两个值的对象。您可以为此创建一个类。该类可以有两个getter方法来检索值。您需要返回一个包含这两个值的对象。这可以是一个包含两个元素的数组、一个
对
类(包含两个通用值,通常来自某个泛项目实用程序库)或一个特定于方法的类,例如:
public class UserFunctionXmlPairing {
public final String audioBeanXml;
public final String promptBeanXml;
}
您可以将所有希望的值包装到单个对象中,并返回:
public class Prompts {
private Map<String, Object> prompts = new HashMap<String, Object>();
public void addPrompt(String name, Object prompt) {
this.prompts.put(name, prompt);
}
public Object getPrompt(String name) {
this.prompts.get(name);
}
}
公共类提示{
私有映射提示=新建HashMap();
public void addPrompt(字符串名称,对象提示){
this.prompts.put(name,prompt);
}
公共对象getPrompt(字符串名称){
this.prompts.get(name);
}
}
如果您的AudioBean
和PromptBean
有一个通用的超类或接口,那么就更容易了
我倾向于在类名中去掉“Bean”
AudioPrompt
和TextPrompt
是首选。创建一个包含两个字符串的新类并返回该字符串
class AudioPromptPair {
private String audio;
private String prompt;
public AudioPromptPair(String audio, String prompt) {
this.audio = audio;
this.prompt = prompt;
}
// add getters and setters
}
返回自定义类对象而不是字符串
class AudioPromptPair {
private String audio;
private String prompt;
public AudioPromptPair(String audio, String prompt) {
this.audio = audio;
this.prompt = prompt;
}
// add getters and setters
}