前几天发现Java中的一段代码,上下文中使用了class关键字,例如:MyConcreteClass.class.AMethod();我已经尝试在JFrame中完成它,例如:JFrame.class.getName();这行得通,但是......我无法在互联网上弄清楚/找到这个关键字在那种情况下的含义。我只用它来声明类。谁能解释一下class在这种情况下的含义?谢谢, 最佳答案 在此上下文中,class不是关键字,它是类的特殊属性(“类文字”),表示其对应的Class实例。.例如,要获取String的Class对象,我们这样做:St
publicclassMain{publicstaticfinalLoggerLOGGER=Logger.getLogger(Main.class.getName());static{try{LOGGER.addHandler(newFileHandler("errors.log",true));}catch(IOExceptionex){LOGGER.log(Level.WARNING,ex.toString(),ex);}}...我想知道这个无名静态函数是关于什么的。我从未在java中看到过这样的东西(我目前正在学习)。它有什么用?它通常在什么时候使用?什么时候在程序中执行?
importjava.io.*;importjava.awt.*;//LogarithmicspiralexamplepublicclassSpiralextendsFrame{//Thespiralconsistsofnlinesegments.Linesegment1//hasstartingpoint(hc,vc).Linesegmentk,for1我正在尝试使用线段创建对数螺线。当我编译代码时,我得到了这个:但我正在尝试用更少的线条来获得一些东西。它应该看起来像这样:我不确定我应该将这些值更改为什么才能达到这一点。 最佳答案
我尝试声明一个类,如下所示classOuter{privatefinalclassInner{publicstaticfinalStrings1=newString("123");publicstaticfinalbyte[]bytes=newbyte[]{0x00,0x01};publicstaticfinalStrings2="123";publicstaticfinalbytebyte1=0x02;}}在上面的代码中,s1和bytes无法编译,但s2和byte1可以编译。如果我将整个常量声明放在外部类中,它就可以正常工作。我错过了什么。有帮助吗? 最佳
我只是想知道我们的主要方法实际上是从哪里调用的。就像在eclipse中一样,当我们将它作为应用程序运行时,它会自动被调用。但是,如果我编写另一个具有相同签名但名称不同的方法,则它不会被调用 最佳答案 来自Java虚拟机的文档:DESCRIPTIONThejavatoollaunchesaJavaapplication.ItdoesthisbystartingaJavaruntimeenvironment,loadingaspecifiedclass,andinvokingthatclass'smainmethod.Themethod
classA{staticintsuper_var=1;static{System.out.println("super");}}classBextendsA{staticintsub_var=2;static{System.out.println("sub");}}publicclassDemo{publicstaticvoidmain(String[]args){System.out.println(B.super_var);}}输出是:super1这意味着子类不会加载或任何其他事情?它是如何工作的? 最佳答案 当您在子类引用上
据我了解,以下代码效率不高:classFoo{staticResourceresource1;staticResourceresource2;staticsynchronizedvoidmethodA(){resource1.add("abc");}staticsynchronizedvoidmethodB(){resource2.add("abc");}}据我所知,这两种方法都锁定在单个对象(类对象Foo.class)中,所以我猜以下是一个很好的优化?classFoo{staticResourceresource1;staticResourceresource2;staticvoid
我有很多抽象类的子类,每个子类都声明了一个同名的publicstaticfinal字段。我在考虑在抽象父类(superclass)中有这个字段而不初始化它,并希望每个子类都被强制初始化它。我之所以想到这一点,是因为我的抽象类的所有子类都声明了一个名为UNIQUE_ID的公共(public)静态最终字符串字段,并且每个子类都必须声明一个具有完全相同名称的字段。我希望我的问题足够清楚,如果不是请告诉我。可以做一些或多或少等同于此的事情吗?编辑:添加代码:我的抽象类如下所示:publicabstractclassExperimentPanelModelextendsPanelizable{p
是否有一种Java方法可以预分配驱动器空间供应用程序独占使用?没有要求这个空间是一个单独的文件系统或现有文件系统的一部分(因此可以很容易地成为一个数据库),但它应该允许保留指定的空间量并允许随机读/写具有高足够的吞吐量。 最佳答案 这是我基于JNA的fallocate解决方案的精简版。主要技巧是获取native文件描述符。到目前为止,我只在Linux上测试过它,但它应该适用于所有现代POSIX/非Windows系统。在Windows上没有必要,因为默认情况下Windows不会创建稀疏文件(仅使用StandardOpenOption.
有没有办法强制Java中的类具有publicstaticfinal字段(通过接口(interface)或抽象类)?或者至少只是一个公共(public)领域?我需要以某种方式确保一组类有publicstaticfinalStringTYPE="...";在其中。 最佳答案 不,你不能。你只能强制他们有一个非静态的getter方法,它会为每个子类返回适当的值:publicabstractStringgetType();如果你需要将某物的每个子类映射到一个值,而不需要实例化它,你可以创建一个publicstaticMap,String>t