如何在没有包的情况下真正获取类的名称?

2023-12-22

我的问题故意标题几乎一模一样this one https://stackoverflow.com/questions/2690333/how-to-get-the-name-of-a-class-without-the-package,但我想要的是去掉包名称没有别的。我的课程看起来像

class AProperlyAndDescriptivelyNamedClass {
    class First {...}
    class Next {...}
    class Last {...}
}

class AnotherTopLevelLongNamedClass {
    class First {...}
    class Next {...}
    class Last {...}
}

正如您所看到的,我为我的顶级类使用了一些长且描述性的类名,并且重复嵌套类中的所有内容将是非常无意义的。使用一些奇怪的快捷方式也好不到哪儿去。我总是使用它们的封闭类(而不是包)来引用这些类,这也是我想要打印它们的方式。

我知道我可以获取包名称并从完整的类名称中删除相应数量的字符,但我想有人已经这样做了?


我想你需要实现一个像这样的简短方法:

private static String getSimpleName(Class<?> clazz) {
    String simpleName = clazz.getSimpleName();
    if (clazz.isMemberClass()) {
        Class<?> enclosingClass = clazz.getEnclosingClass();
        simpleName = enclosingClass.getSimpleName() + "." + simpleName;
    }
    return simpleName;
}

Then

String simpleName = getSimpleName(AnotherTopLevelLongNamedClass.First.class);
System.out.println(simpleName);

将输出

AnotherTopLevelLongNamedClass.First
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有包的情况下真正获取类的名称? 的相关文章

  • 我可以确定谁在调用 Java 中的函数或实例化类吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在Java中 如何使用堆栈跟踪或反射找到方法的调用者 https stackoverflow com questions 421280 in java how do i find the caller
  • 使用 Maven 生成 Eclipse 项目文件

    当我尝试使用生成 Eclipse 项目文件时mvn eclipse eclipse我收到以下错误 插件管理器执行目标时出现内部错误 org apache maven plugins maven eclipse plugin 2 9 SNAP
  • JNA - EnumProcessModules() 未返回所有 DLL?

    我试图从游戏中读取坐标 当我在通过 OpenProcess 接收的 HANDLE 上使用 ReadProcessMemory 以及我在 CheatEngine 中找到的内存时 效果非常好 例如 如果我知道正在运行的进程中的浮点值是0x5AB
  • Java 字符串哈希码缓存

    字符串不变性的优点之一是哈希码缓存以实现更快的访问 在这种情况下 如何处理具有相同哈希码的字符串的缓存 在这种情况下它真的能提高性能吗 在这种情况下 如何处理具有相同哈希码的字符串的缓存 被缓存的是字符串的哈希码 它被缓存在私有的int字符
  • jvm中本机代码如何转换为机器代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过一些文章说 jvm将字节码转换为机器码 jvm将字节码转换为本机代码 jvm 将字节码转换为系统调用 系统调用又由操作系统与硬件
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • 通过 html tidy 提供渲染 jsp 页面

    我有一个在 Glassfish 上运行的 Java 项目 它会呈现一些难看的 HTML 这是使用各种内部和外部 JSP 库的副作用 我想设置某种渲染后过滤器 通过 HTMLTidy 提供最终的 HTML 这样源代码就很好且整洁 有助于调试
  • 如何在Spring Boot中初始化一次MongoClient并使用它的方法?

    您好 我正在尝试导出MongoClient在 Spring Boot 中成功连接后 我尝试在其他文件中使用它 这样我就不必每次需要在 MongoDB 数据库中进行更改时都调用该连接 连接非常简单 但目标是将应用程序连接到我的数据库一次 然后
  • ResultSet:通过索引检索列值与通过标签检索

    使用 JDBC 时 我经常遇到这样的结构 ResultSet rs ps executeQuery while rs next int id rs getInt 1 Some other actions 我问自己 以及代码作者 为什么不使用
  • 初始堆大小无效。无法创建Java虚拟机

    我遇到了下一个问题 我尝试通过startup bat手动启动Tomcat 但似乎没有显示任何结果 然后我尝试运行shutdown bat 控制台显示如下 D apache tomcat 7 0 35 bin gt startup bat U
  • 我需要一个字数统计程序[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要弄清
  • Java 中的 MP4 容器编写器

    我想找到一个免费的 Java MP4 容器 编写器 我不需要编码器 只需要能够根据预期值写入正确原子的编码器 Bonus对于这样一个库 也可以编写 有效 F4V 我更喜欢纯 Java 解决方案 而不是使用 JNI 或外部可执行文件的解决方案
  • 如何在Java中打印保留2位小数的浮点数?

    我可以用System out print 您可以使用printf http java sun com j2se 1 5 0 docs api java io PrintStream html printf 28java lang Strin
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • 获取包中声明的所有 Java 类的名称

    我正在编写一个功能 它将有助于将类放入我的程序的某个包中 另外 我只想要子类某个类的类 我需要这些类才能调用它们的静态方法 有没有一种自动的方法来做到这一点 如果是的话 速度慢吗 如果我不清楚 我想要的是这样的 ArrayList
  • 春季MVC。方法参数字段的默认值

    我有一个带有方法测试的简单控制器 RequestMapping produces application json ResponseBody public HttpEntity
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • Java 可变 BigInteger 类

    我正在使用 BigIntegers 进行计算 该计算使用一个调用 multiply 大约 1000 亿次的循环 并且从 BigInteger 创建新对象使其非常慢 我希望有人编写或找到了 MutableBigInteger 类 我在 jav

随机推荐

  • GameCenter:endTurnWithNextParticipants 未前进

    在沙盒环境中 我无法将回合制比赛推进到下一个玩家 初始条件 玩家 A 和玩家 B 分别位于设备 A 和设备 B 上 两者都登录到沙箱 双方玩家都可以看到对方的GC状态信息 玩家 A 创建一场比赛并邀请玩家 B 玩家A结束回合 在我的 结束转
  • Tensorflow 错误:FailedPeconditionError:尝试使用未初始化的变量

    我想将立体图像放入优化器中 这是我的代码 tf reset default graph config learning rate 0 5 training epochs 5 init init tf global variables ini
  • 如何动态地将组件作为子组件添加到指令中?

    我一直在尝试 Angular 2 并且我已经能够通过获取现有子组件的 ViewChild 然后使用 ComponentResolver 添加我的动态组件来动态地将一个组件添加到另一个组件的子组件中 但是 如果您无法控制模板 即您动态地将组件
  • 堆叠两个具有不同列名的 SQL 表 (2008)

    我检查了这个网站的代码来堆叠两个表 将一个表的结果放在另一个表的结果下面 其中列名不同 我知道当名称相同时 UNION ALL 可以工作 并且我知道当一个表比另一个表拥有更多信息时 对一个表中缺少的列名进行赋值的 UNION ALL 可以工
  • 在 R Markdown 中跳转到某个块的快捷方式?

    是否有跳转到 R Markdown 中的某个块 在 Mac 上 的快捷方式 我正在寻找一种快速从一个块到另一个块的方法 我不完全确定这在 Mac 上是否可行 但在 Windows 版 RStudio 中 您可以选择在 IDE 中显示 文档大
  • 在nodejs中获取视频分辨率

    我一直试图找到这个问题的答案 但没有真正找到答案 如果这听起来很愚蠢或显而易见 请原谅 我有一个 Nodejs 应用程序 基本上我想简单地获取视频的分辨率 想象一下 我在磁盘上存储了一部影片 我希望能够知道它是 720p 还是 1080p
  • 如何检查Android中的UI线程是否运行? [复制]

    这个问题在这里已经有答案了 如何知道正在运行的代码是否在主线程 UI线程 上执行 对于 Swing 我使用isEventDispatchThread方法 使用Looper getMainLooper getThread 获取UI线程 您可以
  • HTTP_INTERCEPTORS 的 multi: true 属性是什么意思?

    我是 Angular 的新手 刚刚构建了一个拦截器 根据多个教程 您必须包括HTTP INTERCEPTORS in the app module像这样 providers provide HTTP INTERCEPTORS useClas
  • 图像路径在 Angular 2 中不起作用

    我放在网站上的所有内容都可以正常运行 但是我尝试放入网站的每个图像 背景除外 都会返回一个404 Not Found Error 我的所有图像都位于 Project src assets images 并且我在 html 文档中尝试了以下
  • vim 用红色突出显示所有内容

    我在执行脚本时向 python 脚本添加了一条打印行 现在当我打开文件时 所有文本都以红色突出显示 打开和关闭文件并不能消除它 打开第二个 python 文件暂时解决了问题 但随后关闭文件并重新打开又使问题再次出现 现在它根本不会消失 有谁
  • 捕获 subprocess.run() 的输出并实时打印它?

    我想使用运行命令subprocess run 然后将其 stdout stderr 作为字符串获取 但我希望子进程在运行时也能正常将其输出打印到控制台 如果我做 result subprocess run ls al 然后我可以看到打印到控
  • OpenMP 和 MPI 哪个更容易学习和调试?

    我有一个数字处理 C C 应用程序 它基本上是不同数据集的主循环 我们可以访问具有 openmp 和 mpi 的 100 个节点集群 我想加快应用程序的速度 但我对 mpi 和 openmp 来说都是绝对的新手 我只是想知道即使性能不是最好
  • XNA 可编辑文本字段

    我知道如何在 XNA 中绘制文本 但我正在实现一个关卡设计器 它需要用户在 UI 中输入文本 我在 Google 上搜索了一下 但找不到如何实现可编辑的文本字段 框架中没有为此构建任何内容吗 你可以使用某种 gui 库 例如http nuc
  • WPF 工具包 DatePicker 仅月/年

    我正在使用上述工具包的日期选择器 但我想将其限制为仅选择月份和年份 因为在这种情况下 用户不知道或不关心确切的日期 显然 数据存储在日期时间中格式将存储日期 但这与我无关 有没有一种简单的方法可以解决这个问题 Thanks 感谢 Ferna
  • 将 Rust 特征传递给 C

    我正在构建一个 Rust 库 需要使用 Rust 对象调用一些 C 函数 我有一个调用 C 函数的函数的特征 C 函数在 Rust 中定义如下 extern fn process trait my trait MyTrait 这个想法是 用
  • 在搜索对话框中添加新运算符

    作为过滤器运算符 您可以从以下选项中进行选择 等于 不等于 小于 小于或等于 大于 大于或等于 开始于 不开始于 在 不 在 结束于 不结束于 包含 和 不包含 我想在此列表中添加一个额外的运算符 有人能指出我实现这一目标的正确方向吗 该应
  • 如何在字符串内迭代循环搜索固定关键字后的任何单词?

    假设我有一个字符串 PHP Paddy PHP Pranav PHP Parth 现在我的计数为3 现在我应该如何在字符串中迭代循环 瞄准 PHP 之后的字符串以显示所有名称 好的 这是字符串 BEGIN IF NEW name OLD n
  • Zend Framework - 不为控制器设置布局

    我有一个控制器 我想使用 ajax 脚本来调用和设置会话变量 获取信息等 如何设置它 以便该特定控制器不使用默认布局 特别是无布局 以便它可以来回发送 XML JSON 消息 就像与 Zend Framework 和 Zend Applic
  • 关闭内存泄漏

    我对垃圾收集语言中内存泄漏的内存 不需要的引用 泄漏的可能性感兴趣 由存储在闭包中的变量引起 可能作为对象系统的一部分或作为基于稍后评估的输入的构建操作的一部分 是否有任何语言中这种情况比较常见 如果是这样 在这些语言中需要注意哪些模式来防
  • 如何在没有包的情况下真正获取类的名称?

    我的问题故意标题几乎一模一样this one https stackoverflow com questions 2690333 how to get the name of a class without the package 但我想要