本文整理汇总了Java中acmi.l2.clientmod.io.annotation.UShort类的典型用法代码示例。如果您正苦于以下问题:Java UShort类的具体用法?Java UShort怎么用?Java UShort使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
UShort类属于acmi.l2.clientmod.io.annotation包,在下文中一共展示了UShort类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: fieldSizer
import acmi.l2.clientmod.io.annotation.UShort; //导入依赖的package包/类
private static BiFunction<Token, BytecodeContext, Integer> fieldSizer(Field f) {
Class type = f.getType();
if (type == Byte.TYPE || f.isAnnotationPresent(UByte.class)) {
return (token, context) -> 1;
} else if (type == Short.TYPE || f.isAnnotationPresent(UShort.class)) {
return (token, context) -> 2;
} else if (type == Integer.TYPE) {
return (token, context) -> 4;
} else if (type == Float.TYPE) {
return (token, context) -> 4;
} else if (type == String.class) {
return (token, context) -> {
String s = (String) fieldGet(f, token);
return s.getBytes(context.getUnrealPackage().getFile().getCharset()).length + 1;
};
} else if (Token.class.isAssignableFrom(type)) {
return (token, context) -> ((Token) fieldGet(f, token)).getSize(context);
} else if (f.isAnnotationPresent(FunctionParams.class)) {
return (token, context) -> Stream.concat(Arrays.stream(((Token[]) fieldGet(f, token))), Stream.of(new EndFunctionParams()))
.mapToInt(t -> t.getSize(context)).sum();
} else {
throw new IllegalStateException("Unsupported field type: " + type);
}
}