代码形态
Java 开发的 SCF 云函数的代码形态一般如下所示:
package example;public class Hello {public String mainHandler(KeyValueClass kv) {System.out.println("Hello world!");System.out.println(String.format("key1 = %s", kv.getKey1()));System.out.println(String.format("key2 = %s", kv.getKey2()));return String.format("Hello World");}}
建立参数 KeyValueClass 类:
package example;public class KeyValueClass {String key1;String key2;public String getKey1() {return this.key1;}public void setKey1(String key1) {this.key1 = key1;}public String getKey2() {return this.key2;}public void setKey2(String key2) {this.key2 = key2;}public KeyValueClass() {}}
执行方法
由于 Java 包含有包的概念,因此执行方法和其他语言有所不同,需要带有包信息。代码示例中对应的执行方法为
example.Hello::mainHandler
,此处 example
标识为 Java package,Hello
标识为类,mainHandler
标识为类方法。入参和返回
代码示例中,mainHandler 所使用的入参使用了 POJO 类型,返回使用了 String 类型。事件入参和函数返回目前支持的类型包括 Java 基础类型和 POJO 类型;函数运行时目前为
com.qcloud.scf.runtime.Context
类型,其相关库文件可单击 此处 下载。事件入参及返回参数类型
事件入参 | 返回参数类型 |
Java 基础类型 | 包括 byte,int,short,long,float,double,char,boolean 这八种基本类型和包装类,也包含 String 类型。 |
POJO 类型 | Plain Old Java Object,您应使用可变 POJO 及公有 getter 和 setter,在代码中提供相应类型的实现。 |
Context 入参
使用 Context 需要在代码中使用
com.qcloud.scf.runtime.Context;
引入包,并在打包时带入 jar 包。如不使用此对象,可在函数入参中忽略,可写为
public String mainHandler(String name)
。注意
部分触发器传递的入参事件结构目前已有一部分已定义,可直接使用。您可通过 cloud event 定义 获取 Java 的库并使用。如果使用过程中发现问题,可以通过 提交 issue 、咨询 在线客服 来寻求帮助。