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

从Java中的静态方法获取类名

卫嘉谊
2023-03-14
问题内容

如何从该类的静态方法获取该类的名称。例如

public class MyClass {
    public static String getClassName() {
        String name = ????; // what goes here so the string "MyClass" is returned
        return name;
    }
}

为了把它放在上下文中,我实际上想返回类名,作为异常中消息的一部分。


问题答案:

为了支持正确的重构(重命名类),则应使用以下任一方法

 MyClass.class.getName(); // full name with package

或(感谢@James Van Huis):

 MyClass.class.getSimpleName(); // class name and no more


 类似资料:
  • 我有以下类(请注意,方法是静态的): 当我打电话的时候: 我想得到输出:

  • 我正在尝试一个为超类学生提供2个私有成员名和ID的练习。提供了两个方法,即public int ShowID()和public String ShowName(),后者将返回两个值。 子类还包含2个私有成员类和2个来自超类私有成员的类号 我的任务是为他们写一个数组并打印出来,创建数组调用std[]后,我不能打印name和ID的值,因为它是私有成员,也不能从superclass方法中获取值,因为它是

  • 问题内容: 我知道不可能在一个类中重写一个方法。但是,有没有办法使用非静态方法作为静态方法呢?例如,我有一个加数字的方法。我希望此方法在没有对象的情况下有用。是否可以在不创建其他方法的情况下执行类似的操作? 编辑:我的意思是,如果我将一个方法设为静态,我将需要它接受参数,如果我创建了一个已经设置了变量的对象,那么再次对具有相同参数的对象调用函数将非常不舒服。 我知道代码不正确,但是我想展示自己想做

  • 问题内容: 在Java中,我希望具有以下内容: 但是我明白了 我对基本用途以外的泛型没有什么了解,因此对此没有多大意义。我无法在互联网上找到有关该主题的很多信息,这无济于事。 有人可以通过类似的方式澄清这种使用是否可行吗?另外,为什么我最初的尝试失败了? 问题答案: 你不能在静态方法或静态字段中使用类的泛型类型参数。该类的类型参数仅在实例方法和实例字段的范围内。对于静态字段和静态方法,它们在类的所

  • 我有很多面板。第一个包含一个JTextField,用于获取玩家的用户名 当您输入文本时,您将被重定向到另一个面板,我想在其中显示以下消息“Hello*由于JTextfield从第一个面板获得的用户名”,让我们玩一个游戏。 我在第二个JPanel的类中编写了以下代码(ifThereUsername函数只是用来表示是否有文本)。但是,用户名没有显示,我只是阅读了消息的其余部分 字体getUsernam

  • 这个问题相当复杂,我不知道以前是否有人问过,因为我不知道如何在搜索框中表达这个问题。 下面是代码: 静态成员将在更多静态方法中再次使用,但我需要首先将其时区设置为“UTC”。有没有方法调用<code>。setTimeZone(“UTC”)一劳永逸?或者我必须调用<code>。setTimeZone(“UTC”)在每个静态方法中?