当前位置: 首页 > 知识库问答 >
问题:

我在Kotlin K类中看不到私人成员

冷翼
2023-03-14

我正在开发一个使用反射的库,我想操纵给定KClass的所有属性/函数。

使用KClass::成员属性,我可以操作所有可访问的成员(根据留档),即:公共、内部和受保护的字段、属性和函数。但是我看不到私有的。

使用Java反射,我可以使用类查看所有字段(包括私有字段)。getDeclaredFields(),同样,我可以看到使用类的私有方法。getDeclaredMethods()。

有没有办法使用kotlin反射API来实现这一点?

共有1个答案

耿永寿
2023-03-14

是的,您可以使用declaredMembers、declaredFunctions和declaredMemberProperties,它们将包括私有成员,但不包括超类型中声明的成员,就像Java反射API一样。

 类似资料:
  • 我试图做一个不和谐机器人,它创建一个类别,并为角色和用户设置权限,将用户id作为参数: 其中args是包含命令、类别名称和用户ID的字符串数组。用法应为: 我对此有一些问题,因为就像机器人看不到服务器的成员,他唯一可以添加的用户是我,如果在第一个参数中指定服务器的所有者(在我的例子中是000000)。如果我把别人的ID,机器人不会在类别中添加该用户的权限。我发现,也许机器人看不到其他用户,事实上,

  • 当我在中使用时,它会生成一个,我希望能够访问该文件以在单元测试中导入,但intellij看不到它

  • 我正在使用Amazon S3将文件上传到不同的文件夹。所有文件夹和文件都是公开的,任何人都可以看到。我创建了一个私人文件夹,我想把私人图像放在那里,这样只有我可以看到它们。我已经创建了一个桶策略规则,将拒绝访问该文件夹。但是我怎么才能看到文件呢?有没有这样的特殊链接https://s3.amazonaws.com/bucket/private_folder/file.jpg?secret_key=

  • 问题内容: 我有一个让我发疯的问题。Matlab仅看到我的某些类嵌入到JAR文件中 如果我在包外部编译类,并使用javaaddpath在Matlab中添加类的路径,则不会遇到任何问题 当我在一个包中编译该类,然后尝试在Matlab下访问它们时,出现了问题。下面是一些Matlab代码 现在,在包装中,所有类都是公共的。这是由于 及以下 我在OSX上运行Matlab。我已经尝试过使用Matlab 7.

  • 我正在使用来运行我的Spark作业。它运行正常,但是打开Spark webUI,我看不到已完成列表中的作业。 注意:Spark版本2.0.1,1个工作进程运行,本地主机上的主UI:8080,工作进程和主进程都从运行/sbin/启动-*。sh脚本。

  • 我正在浏览新的Android O功能,其中一个新功能是现在应用程序可以将字体直接添加到文件夹中。根据用于处理字体的android留档,第一步是使用右键单击res文件夹并转到新建创建一个名为“字体”的新资源类型 但是我在android Studio的下拉列表中看不到资源类型可用的“字体”选项。 我无法在下拉列表中看到“font”选项,因此无法创建字体android资源目录。 我的Android St