前两天处理一些数据的时候,注意到数据集中的Java方法参数和我们平时常用的形式不一样,例如:
withinInstruction(Token,BitSet,BitSet)
被表示为:
withinInstruction(LToken;LBitSet;LBitSet;)
查了一下,原来这是JNI类型的表示方法,具体的转换方法可以参看:
https://www.cnblogs.com/tianshuai11/archive/2012/03/26/2477175.html
原有博文中的Long型的简写错了,应该是J,这个请大家注意。最后,附上一些我写的转换参数类型的Python代码,仅供大家参考:
def change_singe_parameter(single_parameter):
if("[]" in single_parameter):
changed_parameter="["+change_singe_parameter(single_parameter[:single_parameter.index("[")])
return changed_parameter
elif(single_parameter=="boolean"):
return "Z"
elif(single_parameter=="byte"):
return "B"
elif(single_parameter=="char"):
return "C"
elif(single_parameter=="short"):
return "S"
elif(single_parameter=="int"):
return "I"
elif(single_parameter=="long"):
return "J"
elif(single_parameter=="float"):
return "F"
elif(single_parameter=="double"):
return "D"
elif(single_parameter=="void"):
return "V"
else:
return "L"+single_parameter+";"
##########################################################
def parameter_list_change(parameter_string):
types=parameter_string.split(',')
if(len(types)==1):
changed_parameter=change_singe_parameter(types[0])
return changed_parameter
else:
changed_parameter=""
for each_type in types:
changed_parameter=changed_parameter+change_singe_parameter(each_type)
return changed_parameter
就简单总结这么多。