根据一个字段的类型得到其在Java中对应类的全限定名 转换规则:https://stackoverflow.com/a/3442100/4614538 :param _class: :return:
(self, _class)
| 99 | return parameter_types |
| 100 | |
| 101 | def _get_class_name(self, _class): |
| 102 | """ |
| 103 | 根据一个字段的类型得到其在Java中对应类的全限定名 |
| 104 | 转换规则:https://stackoverflow.com/a/3442100/4614538 |
| 105 | :param _class: |
| 106 | :return: |
| 107 | """ |
| 108 | if isinstance(_class, bool): # bool类型的判断必须放在int类型判断的前面 |
| 109 | return 'Z' |
| 110 | elif isinstance(_class, int): |
| 111 | if MIN_INT_32 <= _class <= MAX_INT_32: |
| 112 | return 'I' |
| 113 | else: |
| 114 | return 'J' |
| 115 | elif isinstance(_class, float): |
| 116 | return 'D' |
| 117 | elif isinstance(_class, (str, unicode)): |
| 118 | return 'L' + 'java/lang/String' + ';' |
| 119 | elif isinstance(_class, Object): |
| 120 | path = _class.get_path() |
| 121 | path = 'L' + path.replace('.', '/') + ';' |
| 122 | return path |
| 123 | elif isinstance(_class, list): |
| 124 | if len(_class) == 0: |
| 125 | raise HessianTypeError('Method parameter {} is a list but length is zero'.format(_class)) |
| 126 | return '[' + self._get_class_name(_class[0]) |
| 127 | else: |
| 128 | raise HessianTypeError('Unknown argument type: {0}'.format(_class)) |
| 129 | |
| 130 | def _encode_request_body(self): |
| 131 | """ |
no test coverage detected