Tag: anonymous types

导致SAXException2的原因:“com.foo.Bar”的实例替换为“java.lang.Object”,但“com.foo.Bar”绑定到匿名类型

将现有的jaxb(使用jaxb1.0.1和jaxb 2.0.5)应用程序(在带有jdk5的JBoss 4.3上)迁移到jaxb 2.1.10(随jdk6提供,更新jdk1.6.0_30)。 我无法修改客户提供的架构。 我已经从Sun RI删除了jaxws20,jwsdp,jaxp和jaxb jar的所有引用,并且仅使用jdk 6提供的jar。 任何指针? Caused by: com.sun.istack.SAXException2: Instance of “com.foo.Bar” is substituting “java.lang.Object”, but “com.foo.Bar” is bound to an anonymous type com.foo.Bar@a2e3ss at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:247) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:662) at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:165) at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:152) at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:698) at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152) at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:592) at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:320) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:493) at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)

C ++:为事件处理程序创建一个匿名类

免责声明:此描述包含许多Qt细节。 他们没有必要回答这个问题,我只想给你一个背景。 我需要对QTextEdit的focusInEvent做出反应。 不幸的是,这不是一个信号,这就是我需要QTextEdit的原因。 由于这是我需要的唯一更改,我想使用匿名子类 像这样: myTextEdit =new QTextEdit(){ void focusInEvent(){ //code here } }; 这是我用Java编写的代码,它不能用c ++编译。 以下所有代码都在自定义QWidget的构造函数中。 QTextEdit包含在此小部件中,应在其构造函数中初始化。 奇怪的是这段代码编译: class MyTextEdit:protected QTextEdit{ void focusInEvent(); }; auto myTextEdit=new MyTextEdit(); 但是没用,因为我无法将myTextEdit*的实例分配给指向QTextEdit的指针。 不知何故,多态失败。 此代码无法编译: class MyTextEdit:protected QTextEdit{ void focusInEvent(); }; QTextEdit* myTextEdit=new MyTextEdit(); 编译器错误是: /home/lars/ProgrammierPraktikum/moleculator/implementation/Moleculator/gui_elements/editor.cpp:40:错误:’QTextEdit’是’Editor :: Editor(std :: shared_ptr):: MyTextEdit’QTextEdit * myTextEdit =无法访问的基础新的MyTextEdit(); 实际问题: 如何创建与其超类的指针兼容的匿名子类?

Java – 定义扩展A类并实现接口B的成员

我有一个必须满足两个条件的变量,我想在定义中设置它们 我知道我可以使用单个变量定义任一条件,就像在任何这些示例中一样 private Class variable; //or private A variable; //or private Class variable; //or private B variable; 但有没有办法让变量满足这两个条件? 我希望这样的事情 private Class variable; 但是当我需要调用它或存储它的多个副本时,我找不到任何方法可以在没有类型转换的情况下执行此操作

lambdas中隐含的匿名类型

在这个问题中 ,用户@Holger提供了一个答案 ,显示了匿名类的不常见用法,我不知道。 该答案使用流,但这个问题不是关于流,因为这个匿名类型构造可以在其他上下文中使用,即: String s = “Digging into Java’s intricacies”; Optional.of(new Object() { String field = s; }) .map(anonymous -> anonymous.field) // anonymous implied type .ifPresent(System.out::println); 令我惊讶的是,这会编译并打印预期的输出。 注意:我很清楚,自古以来,可以构造一个匿名内部类并使用其成员,如下所示: int result = new Object() { int incr(int i) {return i + 1; } }.incr(3); System.out.println(result); // 4 但是,这不是我在这里要求的。 我的情况不同,因为匿名类型是通过Optional方法链传播的。 现在,我可以想象这个function的一个非常有用的用法……很多时候,我需要在Stream管道上发布一些map操作,同时还保留原始元素,即假设我有一个人员列表: public class Person { Long […]