Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Java 从一个方法返回多个值_Java - Fatal编程技术网

Java 从一个方法返回多个值

Java 从一个方法返回多个值,java,Java,我有一个类UserFunction,它有两个方法getAudioFunction和getPromptFunction,返回字符串值,我的问题是我想在一个方法中返回这两个值 我怎么能做到呢 UserFunction.java public class UserFunction{ Map<String,PromptBean> promptObject=new HashMap<String,PromptBean>(); Map<St

我有一个类UserFunction,它有两个方法getAudioFunction和getPromptFunction,返回字符串值,我的问题是我想在一个方法中返回这两个值 我怎么能做到呢

UserFunction.java

 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
}