日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

業(yè)務接口定義規(guī)范

考慮到手機端開發(fā)環(huán)境的限制(尤其是 iOS 系統(tǒng)),以及保持接口定義的簡單,服務端在定義移動服務接口時,不能使用 Java 語法的全集。

接口定義規(guī)范涉及三類定義:

內(nèi)部支持數(shù)據(jù)類規(guī)范

不支持的數(shù)據(jù)類型

  • 容器類型不能多層嵌套。

  • List 或 Map 必須有泛型信息。

  • List 或 Map 的泛型信息不能是 array 類型

  • 不支持單字節(jié)(字節(jié)數(shù)據(jù) byte [] 是支持的)

  • 不支持對象數(shù)組,請用 list 代替。

  • 屬性名不能是 data 和 description,會與 iOS 的屬性沖突。

  • Map 類型的 key 必須是 String 類型。

  • 類型不能是抽象類。

  • 類型不能是接口類。

錯誤的寫法:

public class Req {
    private Map<String,List<Person>> map; //容器類型不能多層嵌套。
    private List<Map<Person>> list; //容器類型不能多層嵌套。
    private List list1; //List 或 Map 必須有泛型信息。
    private Map map1; //List 或 Map 必須有泛型信息。
    private List<Person[]> listArray; //List 或 Map 的泛型信息不能是 Array 類型。
    private byte b; //不能為單字節(jié)
    private Person[] personArray; //不支持對象數(shù)組,請用 List 代替
    private String description; //屬性名不能為 description
}

支持的數(shù)據(jù)類型

boolean, char, double, float, int, long, short
java.lang.Boolean
java.lang.Character
java.lang.Double
java.lang.Float
java.lang.Integer
java.lang.Long
java.lang.Short
java.lang.String
java.util.List,但:必須使用類型參數(shù);不能使用其具體子類 以下簡稱 List
java.util.Map,但:必須使用類型參數(shù);不能使用其具體子類;key 類型必須是 String 以下簡稱 Map
Enum
byte[]

正確的寫法:

public class Req {
    private String s = "ss";
    private int i;
    private double d;
    private Long l;
    private long l1;
    private boolean b;
    private List<String> stringList;
    private List<Person> personList;
    private Map<String,Person> map;
    private byte[] bytes;
    private EnumType type;
}

public class Person {
    private String name;
    private int age;

用戶接口類規(guī)范

method 的參數(shù)

不可以引用:

  • 枚舉類型

  • 除上文提到的 Map、List、Set 之外的泛型

  • 抽象類

  • 接口類

  • 原生類型的數(shù)組

可以引用:

  • 具體的實體類,要求引用類型與實際的對象類型保持一致;不可使用父類引用類型指向子類對象。

  • 內(nèi)部支持數(shù)據(jù)類,但數(shù)組、Map、List、Set 這些集合類型不可以嵌套。

如下是錯誤示例:

Map<String,String[]>
Map<String,List<Person>>(Person為一個具體的實體類)
List<Map<String,Persion>>
List<Persion[]>

method 的返回值

不可以引用:

  • 枚舉類型

  • 除上文提到的 Map、List、Set 之外的泛型

  • 抽象類

  • 接口類

  • 原生類型的數(shù)組

可以引用:

  • 具體的數(shù)據(jù)類,要求引用類型與實際的對象類型保持一致;不可使用父類引用類型指向子類對象,例如,不能用 Object 引用指向其它對象。

    重要

    如果父類為具體類,生成工具將檢查不出此類錯誤。

  • 內(nèi)部支持的數(shù)據(jù)類見文章開頭定義。數(shù)組、Map、List、Set 集合類型不可以嵌套,參見上文相關示例。

method 的定義

  • 使用 @OperationType 注解,未加此注解的方法將被生成工具忽略。

  • method 不可 overloading。

代碼生成工具限制

  • 允許接口類定義的繼承關系,但會合并層次關系。

  • 允許但忽略接口類中定義變量。

  • 允許但忽略接口類中的方法聲明拋出異常。

  • 一個源文件中只能包含一個接口類的定義,不能包含其它類(內(nèi)部類、匿名類等)的定義。

  • 接口類定義本身和其引用到的類型必須為內(nèi)部支持數(shù)據(jù)類或可以從源碼獲得定義。

用戶定義實體類規(guī)范

field 定義

不可以引用:

  • 枚舉類型

  • 除上文提到的 Map、List、Set 之外的泛型

  • 抽象類

  • 接口類

  • 原生類型的數(shù)組

可以引用:

  • 具體的實體類,要求引用類型與實際的對象類型保持一致;不可使用父類引用類型指向子類對象。

  • 內(nèi)部支持數(shù)據(jù)類。數(shù)組、Map、List、Set 集合類型不可以嵌套,參見上文相關示例。

  • 修飾符包括 transient 的屬性將會被忽略。

  • final static int 定義的常量(其它不符合該要求定義的常量或靜態(tài)變量將被忽略)。

    說明

    不推薦 is 開頭的成員變量定義。

類的定義

  • 可以繼承自其它實體類。

  • 忽略其方法聲明,生成工具將會自動根據(jù)實體類字段生成 setter/getter 方法。

代碼生成工具限制

  • 屬性的聲明必須一行一個。

  • 允許但忽略用戶定義實體類實現(xiàn)的接口。

  • 一個源文件中只能包含一個用戶定義實體類的定義,不能包含其它類(內(nèi)部類、匿名類等)的定義。

  • 接口類定義本身和其引用到的類型必須為內(nèi)部支持數(shù)據(jù)類或可以從源碼獲得定義。