当前位置: 首页 > 面试题库 >

类签名中的“()V”是什么意思?

曹浩淼
2023-03-14
问题内容

我用Javassist创建了一个没有实际方法的构造函数

CtConstructor c = CtNewConstructor.make ( argTypes, null, newClass );

当我试图拿出这堂课的签名时

c.getSignature();

我懂了

public Echo ()V

我很困惑“ V”是什么意思?我期望任何一个公共Echo(); 或类似的东西


问题答案:

JVM使用一种紧凑的方式来存储方法签名,其中的构造函数被认为是特例。

例如:

  • () 表示不带参数的方法
  • V 表示它什么也不返回

该计划的其他部分是:

  • B -字节
  • C -字符
  • D -双
  • F -浮动
  • I -整数
  • J - 长
  • S -短
  • V -无效
  • Z -布尔值
  • [ -括号后面的东西数组
  • L[类名] ;-此类的实例,点变为斜线
  • ([args] )[返回类型]-方法签名

例如:

public int foo(String bar, long[][] baz)

会成为

(Ljava / lang / String; [[J] I

请参见Sun ^ H ^ H ^
HOracle网站上的规范



 类似资料:
  • 问题内容: 我想知道限制的含义是什么? 问题答案: 这是C99中引入的内容,它使编译器知道传入的指针与参数中的任何其他指针都没有指向相同的位置。如果向编译器提供此提示,则它可以进行一些更积极的优化而不会破坏代码。 例如,考虑以下功能: 显然,它从指针中添加了两个数字。如果需要,我们可以像这样使用它: 显然,它将输出8; 它本身增加了4。但是,如果我们添加到像这样: 那么以前的命令现在无效;它作为两

  • 问题内容: 在Swift函数签名中,参数after意味着什么?更具体地说,这是否意味着需要在传递参数之前将其解开,或者在传递参数时(自动)将其解开。这是一个示例: 在这种情况下,该函数是UIButton的目标,因此无论发生什么情况,它都会自动发生。 我的想法是,这意味着您可以期待一个未包装的对象,因此您无需尝试对其进行包装。 问题答案: 这不是完全重复的- 函数签名中 隐式展开的可选 变量 有一些

  • 问题内容: 我已经阅读了一段python代码,但我不知道和*在这段代码中是什么意思: 我只知道*的一种用法:将它具有的所有属性提取到方法或构造函数的参数中。 如果以上功能为真,那么其余的是什么:**? 问题答案: 在 函数头 里面: 收集元组中的所有位置参数。 收集字典中的所有关键字参数。 在 函数调用中 : 将列表或元组解压缩为位置参数。 将字典解压缩为关键字参数。

  • 这是一个标准的Kotlin函数(据我所知) 但我不认为它在任何地方解释什么。()意思是...

  • 问题内容: 我第一次在方法签名中看到它。 我试图访问一个.class文件。它具有如下定义的方法 那个GraphData就是带有getter和setter的POJO。为什么显示.class文件而不是显示? 问题答案: 它是 varargs ,只能在参数列表中最后使用。最后一个参数可以容纳多个对象。 查看“ a”和“ b”如何转换为数组。

  • 问题内容: 我试图弄清楚什么是“签名cookie”。网上没有太多东西,如果我尝试这样做: 但仍然… Cookies在浏览器上仍然100%正常,而且我真的不知道这里的“签名”是什么(我有点希望在客户端上“看到”一些奇怪的东西,例如使用作为盐的“秘密”?) 该文档说(https://github.com/expressjs/cookie- parser ): 解析 Cookie 标头,并填充 以Coo