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

获取数组类型的Class对象的最佳方法是什么?

钱锐
2023-03-14
问题内容

为一个类获取类文字很容易:

String.class

但是,如何获取数组类型的类对象?

这可行,但是很丑陋,可能不是编译时间常数:

new byte[0].getClass()

我查看了JLS,但唯一发现的是,根据JLS的定义,我所谓的“类文字”不是“文字”。


问题答案:

即使对于数组类型,您仍然可以使用类文字。这样编译就可以了。

Class<String[]> clazz = String[].class;
Class<byte[]> clazz2 = byte[].class;

JLS的15.8.2节规定:

类文字 是由类,接口,的名称的表达 阵列 ,或原语类型或伪类型void,接着是“” 和令牌class

(加粗强调我的)



 类似资料:
  • 问题内容: 如果您将数组作为状态的一部分,并且该数组包含对象,那么通过更改其中一个对象来更新状态的简便方法是什么? 示例,从关于react的教程中修改而来: 问题答案: 在更新状态时,关键部分是将其视为不变。如果可以保证,任何解决方案都可以。 这是我使用immutability-helper的解决方案: jsFiddle:

  • 问题内容: 我试图通过C#中的代码找到最佳的(快速与最简单)访问SQL Server代码的方法。 当我从书本上学习时,我遇到了很多建议,通常都建议我通过拖放来完成。但是,由于我想在代码中做到这一点,所以第一种方法是按列号获取数据,但是SQL Query中的任何重新排序(如添加/删除列)都让我难以解决。 例如(别笑,有些代码大约有2年历史了),我什至编写了特殊的函数来传递sqlQueryResult

  • 问题内容: 我遇到了一个问题,需要成对地遍历数组。最好的方法是什么?或者,作为替代方案,将Array转换为成对的Array(然后可以正常迭代)的最佳方法是什么? 这是我得到的最好的。它必须是,而且不是很漂亮。有没有更好的办法? 问题答案: 您可以 映射 跨步而不是对其进行迭代,从而可以将结果作为 常量获取: 如果只需要遍历对,并且给定的数组很大,那么避免创建带有延迟映射的中间数组可能是有利的:

  • 问题内容: 如果我有一个JS对象,例如: 如果我知道键具有基本的键/值结构,但不知道键的名称,那么最简单的方法是什么???我希望有更好的… 问题答案: 如果要获取所有密钥,则可以使用ECMAScript5。只有较新的浏览器才支持此功能,但MDC文档提供了另一种实现方式(也使用btw): 当然,如果您想要键和值,那么这是唯一合理的解决方案。

  • 本文向大家介绍Java中通过Class类获取Class对象的方法详解,包括了Java中通过Class类获取Class对象的方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 阅读API的Class类得知,Class 没有公共构造方法。Class 对象是

  • 问题内容: 我们有两个PHP5对象,并希望将其中一个的内容合并到第二个中。它们之间没有子类的概念,因此以下主题中描述的解决方案不适用。 备注: 这些是对象,而不是类。 对象包含很多字段,所以 foreach 会很慢。 到目前为止,我们考虑将对象A和B转换为数组,然后在重新转换为对象之前使用 array_merge() 合并它们,但是我们不能为此感到骄傲。 问题答案: 如果您的对象仅包含字段(没有方