以下代码无法编译 - 使用未声明的标识符.我使用GCC和XCode进行编译.
一切都在一个头文件中.
include "MyArray.h"
template <typename T>
class MyBase {
public:
MyBase();
virtual ~MyBase();
void addStuff(T* someStuff);
protected:
MyArray<T*> stuff;
};
template <typename T>
MyBase<T>::MyBase() {}
template <typename T>
MyBase<T>::~MyBase() {}
template <typename T>
void MyBase<T>::addStuff(T* someStuff) {
stuff.add(someStuff);
}
// ---------------------
template <typename T>
class MyDerived : public MyBase<T> {
public:
MyDerived();
virtual ~MyDerived();
virtual void doSomething();
};
template <typename T>
MyDerived<T>::MyDerived() {}
template <typename T>
MyDerived<T>::~MyDerived() {}
template <typename T>
void MyDerived<T>::doSomething() {
T* thingy = …
Run Code Online (Sandbox Code Playgroud) 我正在将一个spring-managed bean注入一个抽象类,它似乎不起作用.这是我所做的解释,如果还不够,我可以编辑帖子并添加一些代码:
结果 - 它不起作用.
然后我尝试将注入的bean从抽象类移动到两个子类中.现在它有效.
那么,我做错了什么,或者理论上不可能将bean注入Spring 3和Java EE 5的抽象类中?
我在一个由unmarshaller设置的类中有一个nillable字段:
@XmlElement(name = "value", nillable = true)
private BigDecimal valueVariable;
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法判断xml元素是否已被省略或设置为nil:
<value/>
XML文件中缺少A.元素,不是必需的.
=>(valueVariable == null)为true
B. XML文件包含<value xsi:nil="true"/>
=>(valueVariable == null)为true
如果值为xsi:nil
或标记丢失,如何判断非String变量?
更新 您可以看到2个好的解决方案,我更喜欢其中一个,但另一个也没关系!
何时使用继承有一般的最佳实践:
public class Information {
private String text;
}
public class Message extends Information {
}
public class Faq extends Information {
}
public class News extends Information {
}
Run Code Online (Sandbox Code Playgroud)
以及何时使用枚举作为成员变量来区分:
public enum InformationType {
MESSAGE, FAQ, NEWS
}
public class Information {
private String text;
private InformationType type;
}
Run Code Online (Sandbox Code Playgroud)
在我使用的代码中,我有第二个 - 一个类型字段,困扰我的是代码
public void displayInformation(final Information information) {
if (information.getType == InformationType.MESSAGE) {
....
} else if (information.getType == InformationType.FAQ) {
....
} else if (information.getType == InformationType.NEWS) { …
Run Code Online (Sandbox Code Playgroud) 我有一个由多个子文档组成的文档。子文档如下所示:
1 页
2-n 页
然后是具有相同结构的下一个子文档:
1 页
2 米页
正如我所说,这些子文档合并在一个 .pdf 文件中。
这是我的 xsl-fo 模板:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<fo:root font-size="11pt" font-family="serif">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4-portrait"
page-height="29.7cm" page-width="21.0cm" margin-top="1cm"
margin-left="1.5cm" margin-right="1cm" margin-bottom="1cm">
<fo:region-body />
<fo:region-after region-name="footer" extent="15mm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<!-- first sub-document -->
<fo:page-sequence master-reference="A4-portrait" initial-page-number="1">
...........
<fo:block text-align="center">
Page <fo:page-number/>/<fo:page-number-citation-last ref-id="end"/>
</fo:block>
...........
</fo:page-sequence>
<fo:page-sequence master-reference="A4-portrait" id="end">
...........
<fo:block text-align="center">
Page <fo:page-number/>/<fo:page-number-citation-last ref-id="end"/>
</fo:block>
...........
</fo:page-sequence>
<!-- second sub-document --> …
Run Code Online (Sandbox Code Playgroud) 我有一个oracle 11.2数据库,需要以下查询:
SELECT * FROM table1 a, table2 b
WHERE a.id = b.a_id AND (a.a_col1, b.b_col1) in ((?, ?), (?, ?), (?, ?))
Run Code Online (Sandbox Code Playgroud)
请注意,这些值无关紧要,我对这种查询的结构感兴趣.我将从java执行查询,传递参数.
更新:嗯,它确实有效.我希望有一天有人需要这些信息......
对于我的Web服务请求,我想要求请求null
值和缺少标记之间的区别.换句话说,我需要以下元素定义:
<xs:element minOccurs="0" name="minzeronil" nillable="true" type="xs:string"/>
Run Code Online (Sandbox Code Playgroud)
我首先开发了Web服务代码,所以我使用JAXBElementRef
以下方法定义了元素:
@XmlRegistry
public class ObjectFactory {
@XmlElementDecl(name = "minzeronil", namespace = XmlNamespace.MY_SERVICE)
public JAXBElement<String> createMinzeronil(final String value) {
return new JAXBElement<String>(new QName(XmlNamespace.MY_SERVICE, "minzeronil"), String.class, value);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望nillable = "true"
在元素的定义中看到.相反,我得到了:
<xs:element name="minzeronil" type="xs:string"/>
<xs:element ref="tns:minzeronil" minOccurs="0"/>
Run Code Online (Sandbox Code Playgroud)
如何nillable = "true"
从我的java代码生成?...仍然在我的代码中使用JAXBElement,其方法如isNil()
...
更新:我在glassfish上部署代码,因此glassfish是生成wsdl和xsd的代码.
使用Collectors.groupingBy()
我可以轻松获得Map<Department, List<Person>>
- 这给了我所有的Person
对象Department
:
allPersons.stream().collect(Collectors.groupingBy(Person::getDepartment));
Run Code Online (Sandbox Code Playgroud)
现在我想转换生成的'multimap',使其包含所有Persons的名称,而不是Person
对象.
实现这一目标的一种方法是:
final Map<Department, List<String>> newMap = new HashMap<>();
personsByDepartmentMap.stream
.forEach((d, lp) -> newMap.put(
d, lp.stream().map(Person::getName).collect(Collectors.toList())));
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用newMap
对象的情况下实现这一目标?就像是
final Map<Department, List<String>> newMap =
personsByDepartmentMap.stream().someBigMagic();
Run Code Online (Sandbox Code Playgroud) 我有一个selectOneRadio
标签,所有单选按钮选项都显示在一行上.如何为每行/每行创建一个选项?
我使用apache FOP生成pdf文件.我有这个xsl代码
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<fo:root font-size="11pt" font-family="serif">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4-portrait"
page-height="29.7cm" page-width="21.0cm" margin-top="1cm"
margin-left="1.5cm" margin-right="1cm" margin-bottom="1cm">
<fo:region-body />
<fo:region-after region-name="footer" extent="15mm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="A4-landscape"
page-width="29.7cm" page-height="21.0cm" margin-top="1cm"
margin-left="1cm" margin-right="1cm" margin-bottom="1cm">
<fo:region-body />
<fo:region-after region-name="footer2" display-align="after" extent="0cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4-portrait">
<xsl:include href="footer_common.xsl"/>
<fo:flow flow-name="xsl-region-body">
....
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
注意元素<xsl:include href="footer_common.xsl"/>
包含不起作用!这是footer_common.xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<fo:static-content flow-name="footer" font-size="7pt">
<fo:table>
<fo:table-column column-width="70mm"/>
<fo:table-column column-width="70mm"/>
<fo:table-column column-width="70mm"/>
<fo:table-body>
...........
</fo:table-body>
</fo:table> …
Run Code Online (Sandbox Code Playgroud) 这是一个错误吗?
我需要nillable = "true"
在xsd模式中。从我的Java代码生成此类元素的唯一方法是使用@XmlElement(nillable = true)
,对吗?但是在这种情况下,我将无法利用此定义,也无法检查元素是否设置为nil
。该方法isNil()
在JAXBElement
包装器类中。
因此,我在这里有哪些选择-我想nillable = "true"
在我的xsd模式中生成并能够检查它是否从我的Java代码中设置。
我在java中有一个varargs方法.因此,该方法需要一个Object
s 数组.我通过了一个List
方法,它工作了!我的意思是,它不仅编译,而且测试是绿色的.所以,我的问题是 - myList.toArray()
调用方法时是否需要调用,或者此调用是否自动发生?
提前致谢!
以下是代码:
createSomething(final Object... parameters) {
// varargs method
}
List<Object> data = new ArrayList<Object>();
createSomething(data); // is this wrong?
createSomething(data.toArray()); // should I always do this?
Run Code Online (Sandbox Code Playgroud) java ×5
jaxb ×3
apache-fop ×2
inheritance ×2
jaxbelement ×2
xml-nil ×2
xsl-fo ×2
xslt ×2
arrays ×1
c++ ×1
collections ×1
dictionary ×1
enums ×1
java-8 ×1
java-ee-5 ×1
java-stream ×1
jsf ×1
line-breaks ×1
list ×1
oop ×1
oracle ×1
pdf ×1
spring ×1
sql ×1
templates ×1