我希望我的Java类的序列化XML输出能够满足Java类中属性的顺序.
似乎JAXB按字母顺序排序.
我可以通过重写此@XmlType与propOrder并指定所有属性,但我有很多属性的类,这些都还没有最终确定.
我读到指定一个空的propOrder会这样做,但事实并非如此.
我的示例类:
package test;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement
//@XmlType(propOrder={"company", "scheme", "agreementNumber"})
@XmlType(propOrder={}) // makes no difference - still alphabetical in XML
public class CustomerPlan2 {
private String company;
private String scheme;
private String agreementNumber;
@XmlElement(name="Company")
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
@XmlElement(name="Scheme")
public String getScheme() {
return scheme;
}
public void setScheme(String scheme) {
this.scheme = scheme;
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试为计算器编写我的第一个单元测试,但NetBeans说它无法找到符号assertEquals和注释@Test.
我应该包括什么吗?
我正在使用NetBeans 7.3.1和W7.
package calculator;
import org.junit.Assert.*;
public class UnitTests{
@Test
public void checkAdd(){
assertEquals(2, Calculator.rpnCalc(" 2 3 + "));
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢你们,导入它作为静态帮助.仅需要测试注释包括
import org.junit.Test;
我在控制台上反复出现以下错误
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender].
log4j:ERROR Attempted to append to closed appender named [FixedWindowRollingFile].
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender class="org.apache.log4j.rolling.RollingFileAppender" name="FixedWindowRollingFile">
<param name="Append" value="true"/>
<param name="ImmediateFlush" value="true"/>
<rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
<param name="fileNamePattern" value="logs/StandardizeAccountService.%i.log"/>
<param name="minIndex" value="1"/>
<param name="maxIndex" value="10"/>
</rollingPolicy>
<triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="MaxFileSize" value="1002400"/>
</triggeringPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p %c{1}:%L - %m%n"/>
</layout>
</appender>
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.SimpleLayout"/>
</appender>
<logger name="com.arosys" additivity="false" >
<level …Run Code Online (Sandbox Code Playgroud) 如何通过不增加字符串连接的开销来改进您的日志记录机制呢?
请考虑以下示例:
import java.util.logging.Level;
import java.util.logging.Logger;
public class LoggerTest {
public static void main(String[] args) {
// get logger
Logger log = Logger.getLogger(LoggerTest.class.getName());
// set log level to INFO (so fine will not be logged)
log.setLevel(Level.INFO);
// this line won't log anything, but will evaluate the getValue method
log.fine("Trace value: " + getValue());
}
// example method to get a value with a lot of string concatenation
private static String getValue() {
String val = "";
for (int i = …Run Code Online (Sandbox Code Playgroud) 我有一个对象列表List<A> list1...
A有两个成员id和name......现在我还有一个列表List<Integer> list2只包含id...我需要删除其id不存在的所有A对象.list1list2
到目前为止我尝试了什么:
void removeUnwanted(List<A> a, List<Integer> b) {
for (A object : a) {
if (!(b.contains(object.id))) {
b.remove(object)
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我建议最有效的方法吗?
我正在尝试从url https://someurl.com使用RESTful服务.我在代码中添加了以下属性:
Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");
Security.setProperty("ssl.ServerSocketFactory.provider", "com.ibm.jsse2.SSLServerSocketFactoryImpl");
Security.setProperty("javax.net.ssl.trustStore", "cacerts.jks");
Security.setProperty("javax.net.ssl.keyStore", "keystore.jks");
Security.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
Security.setProperty("javax.net.ssl.trustStoreType", "JKS");
Run Code Online (Sandbox Code Playgroud)
到目前为止我所做的配置更改是:
com.ibm.websphere.ssl.retrieveLeafCert为true但我得到以下异常:
java.security.cert.CertPathValidatorException: Certificate chaining error
javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by CN=Walmart Root CA, O=Wal-Mart Stores Inc is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error
at com.ibm.jsse2.o.a(o.java:22)
at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:423)
at com.ibm.jsse2.kb.a(kb.java:192)
at com.ibm.jsse2.kb.a(kb.java:176)
at com.ibm.jsse2.lb.a(lb.java:53)
at com.ibm.jsse2.lb.a(lb.java:464)
at com.ibm.jsse2.kb.s(kb.java:545) …Run Code Online (Sandbox Code Playgroud) 这是一个自我回答的问题!
我正在尝试Integer使用值初始化变量,但它没有按预期工作.它给了我不同的错误.
到目前为止我尝试过的:
public class Integer {
public static void main(String[] args) {
Integer num1 = 42; // Type mismatch: cannot convert from int to Integer
Integer num2 = (Integer)42; // Cannot cast from int to Integer
Integer num3 = new Integer(42); // The constructor Integer(int) is undefined
}
}
Run Code Online (Sandbox Code Playgroud)
这是什么问题?如何Integer正确设置我的价值?
为什么我的场景中的第二个测试在行The value for annotation attribute SuppressWarnings.value must be an array initializer上有语法错误SuppressWarnings?
public class AnnotationTest {
private static final String supUnused = "unused";
private static final String supDeprecation = "deprecation";
private static final String[] suppressArray = { "unused", "deprecation" };
public static void main(String[] args) {
// Test 1
@SuppressWarnings( { supUnused, supDeprecation } )
int a = new Date().getDay();
// Test 2
@SuppressWarnings(suppressArray) // syntax error
int b = new Date().getDay();
}
}
Run Code Online (Sandbox Code Playgroud)
如果您将参数作为两个单一常量传递,则可以正常工作.
如果您使用数组常量传递它,则会出现语法错误.
这个错误的解释是什么?
我正在使用
double i2 = value * 2.23694;
i2 = (double)(Math.round(i2 * 100)) / 100;
Run Code Online (Sandbox Code Playgroud)
用于舍入双打.但它只到小数点后两位.
我希望它是小数点后6位.
有没有办法使用Math.round并有6个小数位?