
Java:静态类与内部类
静态和非静态嵌套类有什么区别?回答:根据定义,内部类不能是静态的,因此我将重述您的问题为“静态和非静态嵌套类之间有什么区别?”非静态嵌套类具有对其嵌套的类的成员的完全访问权。静态嵌套类没有对嵌套实例的引用,因此静态嵌套类无法调用非静态方法或访问嵌套该类的实例的非静...
2024-01-10
Java-匿名内部类生命周期
在对象生命周期的什么时候使用匿名内部类作为PropertyChangeListener时,将收集类的垃圾?回收包含的类(SettingsNode)之后?是否应该在包含类(SettingsNode)的终结器中显式删除PropertyChangeListener?public class SettingsNode extends AbstractNode{ public SettingsNode(Project project, ProjectSettings projectSettings) ...
2024-01-10
Java中如何使用匿名内部类?
Java中匿名类的用途是什么?我们可以说使用匿名类是Java的优势之一吗?回答:使用某些“额外”(例如覆盖方法)创建对象的实例时,匿名内部类会变得很有用,而不必实际继承一个类。我倾向于将它用作附加事件侦听器的快捷方式:button.addActionListener(new ActionListener() { @Override public void actionP...
2024-01-10
用Java反射实例化私有内部类
是否可以使用Java反射从另一个类实例化私有内部类。例如,如果我采用了这段代码public class Main { public static void main(String[] args) {}}class OtherClass { private class Test {}}是否可以实例化并从main类中的main方法获得对Test的访问。回答:使用反射时,您会发现该内部类的构造函数将外部类的实例作为附...
2024-01-10
Scala中的静态内部类
在Scala中使用Java进行模拟的模拟方式是什么:public class Outer { private Inner inner; public static class Inner { } public Inner getInner() { return inner; }}我特别希望我的内部类 具有完全限定的名称-即,我Trade.Type不需要TradeType。因此,在Scala中,我想到的可能是这样的:class Outer(val inner: Inner) { object I...
2024-01-10
JavaPoet - 字段内部类
我想添加一个内部类(例如接口Listener {})到一个TypeSpec。另外我想将一个类型监听器的字段添加到我的TypeSpec中。我怎么能做到这样的事情?JavaPoet - 字段内部类TypeSpec outerClass = ...; TypeSpec innerClass = ...; outerClass.addType(innerClass); outerClass.addField(...); // How can i add a field of type innerClass? 回答:...
2024-01-10
如何在Java中初始化匿名内部类
有什么方法可以初始化Java中的匿名内部类吗?例如:new AbstractAction() { actionPerformed(ActionEvent event) { ... }}有没有办法在类声明中的某处使用例如putValue方法?回答:使用初始化程序块:new AbstractAction() { { // do stuff here } public void actionPerformed(ActionEvent event) { ......
2024-01-10
Java 从内部类对象获取外部类对象
我有以下代码。我想掌握用来创建内部类对象的外部类对象inner。我该怎么做?public class OuterClass { public class InnerClass { private String name = "Peakit"; } public static void main(String[] args) { OuterClass outer = new OuterClass(); InnerClass inner = outer...
2024-01-10
从Java内部静默打印PDF
我们正在研究从Java内部以静默方式打印PDF文档。打印将从桌面而不是通过浏览器调用,因此我们不能使用JavaScript。PDFRenderer是可操作的解决方案,但其渲染质量不可接受。iText似乎不可与Java打印服务插入。有一些商业Java库,Qoppa的jPDFPrint,JPedal和ICEpdf,我们还没有尝试过。是否有人对使用Java进行PDF静...
2024-01-10
为什么Java禁止内部类中的静态字段?
class OuterClass { class InnerClass { static int i = 100; // compile error static void f() { } // compile error }} 虽然无法使用来访问静态字段OuterClass.InnerClass.i,但是如果我想记录一些应该是静态的内容(例如,创建的InnerClass对象的数量),则使该字段静态化将很有帮助。那么,为什么 Java禁止内部类中的静态字段/方法...
2024-01-10
Java:在匿名内部类中调用外部类方法
最近,我遇到了一个神秘的问题,在Android项目,我描述了这里。我以某种方式解决了问题,但仍然不知道其背后的确切原因。假设我想在内部类中调用函数foo()。问题是,直接调用它有什么区别foo();或使用外部类实例对其进行调用OuterClass.this.foo();此外,如果有人能检查我与此相关的最后一个问...
2024-01-10
Java来自匿名内部类的外部类的关键字
在以下代码段中:public class a { public void otherMethod(){} public void doStuff(String str, InnerClass b){} public void method(a){ doStuff("asd", new InnerClass(){ public void innerMethod(){ otherMethod...
2024-01-10
从Java内部类访问外部类“ super”
如何super从内部类访问外部类?我正在重写一种使它在不同线程上运行的方法。从内联线程中,我需要调用原始方法,但是当然只要调用method()就会变成无限递归。具体来说,我在扩展BufferedReader:public WaitingBufferedReader(InputStreamReader in, long waitingTime){ [..] @Override public String readLine() { Th...
2024-01-10
检查Flask中Jinja2内部的变量类型
我创建的模板文件包含以下内容:{% if type({'a':1,'b':2}) is dict %} print "Oh Yes!!"{% else %} print "Oh No!!!"{% endif %}然后Jinja2回应说:TemplateAssertionError: no test named 'dict'我对Jinja2和Flask完全陌生回答:你正在寻找mapping测试:{% if {'a': 1, 'b': 2} is mapping %} "Oh Yes!"{% ...
2024-01-10
如果主要方法在java文件的“非公共类”内部怎么办?
我有一个Java文件,其中包含多个类,其中一个是公共类。如果main方法位于非公共类内。我无法运行该Java文件。这是为什么?而且也没有编译错误。如果是这样,如何使用该主要方法?回答:您当然可以覆盖main方法,它不会违反任何编译器规则,因此不会出现任何编译器错误。您要检查尽管您拥有一...
2024-01-10
Java如何在静态方法中实例化非静态内部类?
我有以下代码:public class MyClass { class Inner { int s, e, p; } public static void main(String args[]) { Inner in; }}到目前为止,代码还不错,但是我无法像in = new Inner()显示的那样在main方法中实例化“ in” non static field cannot be referenced in static context。我该怎么做?我不想使我的Inne...
2024-01-10
为什么外部Java类可以访问内部类的私有成员?
我观察到外部类可以访问内部类的私有实例变量。这怎么可能?这是演示相同代码的示例代码:class ABC{ class XYZ{ private int x=10; } public static void main(String... args){ ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: "+xx.x); ///Why is this allowed?? }...
2024-01-10
java无法在用其他方法定义的内部类中引用非final变量?
我需要更改几个变量的值,因为它们在计时器中运行了几次。我需要通过计时器在每次迭代中不断更新值。我无法将值设置为final,因为这将阻止我更新值,但是我遇到了在下面的的错误:无法引用用其他方法定义的内部类内部的非最终变量public static void main(String args[]) { int period = 2000; int delay = ...
2024-01-10
C#中的匿名内部类
我正在编写C#Wicket实现,以加深对C#和Wicket的理解。我们遇到的问题之一是Wicket大量使用匿名内部类,而C#没有匿名内部类。因此,例如,在Wicket中,您可以这样定义一个链接:Link link = new Link("id") { @Override void onClick() { setResponsePage(...); }};由于Link是一个抽象类,因此它强制实现者...
2024-01-10
在Java中如何在位级别上内部表示整数?
我试图了解Java如何在内部存储整数。我知道所有Java基本整数都是带符号的(短符号除外)。这意味着该数字在一个字节中减少了一位。我的问题是,是否所有整数(正数和负数)都存储为二进制补码,或者仅是负数在二进制补码中?我看到规格说明了x bit two's complement number。但是我经常感到困惑。例...
2024-01-10
如何从Java应用程序内部获取VM参数?
我需要检查是否可以显式设置可以传递给JVM的某些选项,或者是否具有其默认值。更具体地说:我需要创建一个本机堆栈大小比默认线程大的特定线程,但是如果用户想通过指定-Xss选项自己处理此类事情,我想创建所有具有默认堆栈大小的线程(将由用户在-Xss选项中指定)。我已经检查了类java.lang.Sy...
2024-01-10
Java为什么不能在(非静态)内部类中使用静态方法?
为什么我们不能在非静态内部类中使用静态方法?如果我将内部类设为静态,则可以工作。为什么呢回答:因为内部类的实例与外部类的实例隐式关联,所以它本身不能定义任何静态方法。由于静态嵌套类无法直接引用其封闭类中定义的实例变量或方法,因此只能通过对象引用使用它们,因此在静态...
2024-01-10
Java 8 lambda和匿名内部类之间的性能差异
在Java 8之前,可以通过使用匿名内部类来实现lambda功能。例如:interface Lambda { void doStuff();}// ...public void doWithCallback(Lambda callback) { // ... callback.doStuff();}// ...doWithCallback(new Lambda { public void doStuff() { // ... } });在性能方面,仍然使用这...
2024-01-10
从Lambda内部修改局部变量
修改中的局部变量forEach会产生编译错误: int ordinal = 0; for (Example s : list) { s.setOrdinal(ordinal); ordinal++; } int ordinal = 0; list.forEach(s -> { s.setOrdinal(ordinal); ordinal++; });任何想法如何解决这个问题?回答:使用包装纸任何一种包装纸都是好的。对...
2024-01-10
Java-无法在用其他方法定义的内部类中引用非最终变量
编辑:我需要更改几个变量的值,因为它们在计时器中运行了几次。我需要在每次迭代中通过计时器不断更新值。我无法将值设置为final,因为这将阻止我更新值,但是我遇到了在下面的第一个问题中描述的错误:我以前写过下面的内容:我收到错误消息“无法引用用其他方法定义的内部类内部的非最...
2024-01-10
