Skip to content

java——operate

殷泽凌 edited this page Mar 29, 2019 · 2 revisions

operate这个是具体的操作

operate的返回类型

关于operate的返回类型,支持两种类型,分别为void与Object,即无论返回任何类型都会被接受
对于Object的处理,采取toString()的方式,无论返回任何对象,将会把这个对象的toString结果进行处理

//字符串
//当你在群里发hello bang的时候,机器人会回复你一句hello bang!!!
public class HelloBang{
    public String check(){
        return "hello bang";
    }
    public String operate(){
        return "hello bang!!!";
    }
}

//null类型
//当你在群里发hello bang的时候,不会做出任何回应,因为null是不作为
public class HelloBang{
    public String check(){
        return "hello bang";
    }
    public String operate(){
        return null;
    }
}

//void类型
//当你在群里发hello bang的时候,不会做出任何回应,返回类型是void,operate方法会调用但是不会发生任何的信息处理
public class HelloBang{
    public String check(){
        return "hello bang";
    }
    public void operate(){

    }
}

关于参数

关于参数,方法支持以下参数类型,与check语法相同

//没有参数,正常调用
operate();

//传递一个字符串,内容为群里要被处理的消息内容
operate(String msg);

//传递一个map,为HttpAPI的原生数据,该data可以转换为fastjson的JSONObject
operate(Map<String,Object> data);

//传递两个参数,第一个参数为当前信息的成员的QQ号码,第二个参数为要被处理的消息内容
operate(String userID,String msg);

//传递两个参数,第一个参数为当前信息的成员的QQ号码,第二个参数为要被处理的消息内容
operate(int userID,String msg);

//传递两个参数,第一个参数为当前信息的成员的QQ号码,第二个参数为要被处理的消息内容
operate(long userID,String msg);

注意的是,operate传递QQ号与消息内容的参数是不能交换的,因为和参数名无关,只与参数顺序有关

关于operate的举例

//当群里传来消息,内容为hello bang的时候,返回一句"hello bang!!!"
public class HelloBang{
    public String check(){
        return "hello bang";
    }
    public String operate(String msg){
        return msg+"!!!";
    }
}

关于Map参数的参考资料

文档参考httpapi文档

字段参考httpapi群事件字段