草庐IT

getSimpleName

全部标签

java - 在不加载类的情况下近似 class.getSimpleName() 的最佳方法是什么?

给定一个完全限定的类名,可以用Class.forName()加载,有没有办法将名称转换为加载类和调用getSimpleName()的结果没有实际尝试加载类?我需要这种能力来进行反射(reflection)。 最佳答案 我要说的是,您不能仅根据名称来做到这一点。您可以尝试在.和$上拆分,但此示例代码表明简单名称的开始位置并不总是很明显:classIdeone{privatestaticclassBar{};publicstaticvoidmain(String[]args)throwsjava.lang.Exception{class

android - 如何检测 fragment 何时出现在屏幕上?

我的代码的某些部分如何知道Fragment实例在屏幕上可见?以下fragment将解释我的问题。publicclassMyAppextendsApplication{publicstaticfinalStringTAG=MyApp.class.getSimpleName();@OverridepublicvoidonCreate(){super.onCreate();registerActivityLifecycleCallbacks(newActivityLifecycleCallbacks(){...@OverridepublicvoidonActivityResumed(Acti

使用 class.getSimpleName() 的 Java switch 语句给出 Constant express required 错误

我正在尝试使用class.getSimpleName()来表达开关,但是它给了我一个错误:Constantexpressrequired我看到的答案建议将表达式变量声明更改为具有作为编译时常量表达式的初始值设定项。但是,在这种情况下这是不可能的。有没有一种方法可以使用class.getSimpleName()进行切换而不必对类名进行硬编码?示例代码publicclassClassA{publicstaticfinalStringTAG=ClassA.class.getSimpleName();...}publicclassClassB{publicstaticfinalStringTA

java - 仅获取类 Class.getName() 的名称

我怎样才能得到类(class)的名字String.class.getName()returnsjava.lang.String我只对获取最后一部分感兴趣,即只有字符串任何Api都可以做到这一点? 最佳答案 Class.getSimpleName() 关于java-仅获取类Class.getName()的名称,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6777330/

java - 仅获取类 Class.getName() 的名称

我怎样才能得到类(class)的名字String.class.getName()returnsjava.lang.String我只对获取最后一部分感兴趣,即只有字符串任何Api都可以做到这一点? 最佳答案 Class.getSimpleName() 关于java-仅获取类Class.getName()的名称,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6777330/

java - 为什么 Class.getSimpleName() 没有被缓存?

如果您查看Sun实现Class.getSimpleName()的源代码,您会注意到它似乎每次调用它时都会返回一个新的String实例。然而,Class类中的许多其他功能都被缓存了。由于简单的名称计算似乎并不容易,而且JavaDoc中也没有说它每次都必须返回一个新实例,因此它应该是一个很好的缓存候选者。我想知道是否有任何设计原因不缓存它?我问是因为许多框架一直使用简单的名称,这很容易缓存。 最佳答案 更新:名称缓存在OpenJDK11中在OpenJDK11及更高版本中,类名被缓存。查看Class.java的OpenJDK源代码并搜索p