# Java智能合约示例
* * * * *
~~~
package test.contract;
import java.io.Serializable;
import com.juzix.juice.util.annotation.Call;
import com.juzix.juice.util.annotation.Contract;
import com.juzix.juice.util.annotation.Transaction;
/**
* 每个合约类必须使用开发SDK提供的@Contract注解标明该类为合约类
* 合约类必须实现java.io的序列化接口
* 合约方法使用@Transaction(写方法)或@Call(读方法)标明该方法为合约执行方法
*/
@Contract
public class ExampleContract implements Serializable {
private static final long serialVersionUID = -5545651580279995957L;
private String x;
/**
* 合约执行方法必须为public
* @Transaction为写方法
*
* @param a
*/
@Transaction
public void setX(String a) {
this.x = a;
}
/**
* 合约执行方法必须为public
* @Call为读方法
* 使用@Call(读方法)注解的方法必须有返回值
*
* @return
*/
@Call
public String getX() {
return x;
}
/**
* 非合约方法不能通过合约调用
*
* @return
*/
public String getName() {
return "";
}
}
~~~