我将值放入形式的hashmap中,
Map<Long, Double> highLowValueMap=new HashMap<Long, Double>();
highLowValueMap.put(1l, 10.0);
highLowValueMap.put(2l, 20.0);
Run Code Online (Sandbox Code Playgroud)
我想用values()map方法创建一个列表.
List<Double> valuesToMatch=new ArrayList<>();
valuesToMatch=(List<Double>) highLowValueMap.values();
Run Code Online (Sandbox Code Playgroud)
要么
List<Double> valuesToMatch=(List<Double>) highLowValueMap.values();
Run Code Online (Sandbox Code Playgroud)
但是,它会引发异常:
线程"main"中的异常java.lang.ClassCastException:
java.util.HashMap $不能将值强制转换为java.util.List
但它允许我将其传递给列表的创建:
List<Double> valuesToMatch = new ArrayList<Double>( highLowValueMap.values());
Run Code Online (Sandbox Code Playgroud) 我在项目中使用了弹簧靴.它有inbuild tomcat服务器.我发现了一个罐子spring-boot-starter-tomcat-1.2.5.RELEASE.jar.我需要在linux服务器上做一些与tomcat相关的配置.
我怎样才能知道这个中使用的tomcat版本?
我有一个在表格布局中创建行的类.行创建取决于数据和元数据.正如所以我创建的元数据属性作为静态和使用初始化一次元数据是相同像显示/隐藏可见属性,每一行等initWidget的RowWidget.
只是示例:
class RowWidget extends FlexTable{
public static void initWidget(Form form,
HashMap<Long, ContractorPermissionEnum> formModePermissionMap,
GridMode gridMode,
boolean isApplied,
boolean isChildExist,
boolean isChildAttachment)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
然后我为每个记录数据调用下面的构造函数.
public RowWidget(DataRawType dataRawType, Data data, Data parentData) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我认为这不是正确的方法.因为作为模式,任何人看到这个类,然后理解它将创建一行.我最初不想打电话initWidget.我想只在构造函数中传递每个必需参数
public RowWidget(DataRawType dataRawType,
Data data,
Data parentData,
Form form,
HashMap<Long, ContractorPermissionEnum> formModePermissionMap,
GridMode gridMode,
boolean isApplied,
boolean isChildExist,
boolean isChildAttachment) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但由于这个原因,构造函数没有任何参数.我认为在构造函数中有5+参数也是不好的模式.
有人建议我:
注意:我知道这可以仅通过静态但不想使用静态.
注意:我不想创建另一个类来实现它.或任何getter/setter方法.
提前致谢.
为了使用JAXB编组一个长基本类型,我使用了XmlJavaTypeAdapter@annotation,它将非String类型调整为String.即使它为长类型抛出错误.为什么会这样?如何对我的longid属性进行编组?
User.java
class User {
@XmlID
@XmlJavaTypeAdapter(WSLongAdapter.class)
private long id;
// Other variables
// Getter & Setter method
}
Run Code Online (Sandbox Code Playgroud)
WSLongAdapter.java
public class WSLongAdapter extends XmlAdapter<String, Long>{
@Override
public String marshal(Long id) throws Exception {
if(id==null) return "" ;
return id.toString();
}
@Override
public Long unmarshal(String id) throws Exception {
return Long.parseLong(id);
}
}
Run Code Online (Sandbox Code Playgroud)
MarshallTest.java
public static void main(String[] args) {
try{
JAXBContext jaxbContext= JAXBContext.newInstance(User.class);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
OutputStreamWriter writer = new OutputStreamWriter(System.out);
// …Run Code Online (Sandbox Code Playgroud) 我开发了一个小程序,我发现了一个奇怪的行为.
这适用于基于GWT,Hibernate和Spring构建的基于安全性的应用程序.
applet主要访问浏览器证书并使用它来加密和解密数据.
它在所有系统上工作正常但我不知道一台客户端机器我发现了一个奇怪的行为.
当我在Internet Explorer中登录时.小程序加载在以下点停止,然后自动关闭.
applet控制台错误说:
basic:添加进度监听器:sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@337d0f
basic:调用http://phil.etenders.in/securityApplet.jar 安全性的Plugin2ClassLoader.addURL父级:启用黑名单吊销检查安全性:启用可信库列表检查网络:找到缓存条目[url:http:// phil. etenders.in/securityApplet.jar,version:null ] prevalidated = false/0
删除了黑名单撤销检查和可信库检查,但没有任何影响.(他们经过的很好),
如果我从http://csis.pace.edu/~bergin/Java/applets.htm打开任何示例小程序, 它将在以下行停止
basic: Plugin2ClassLoader.isTrustedByPolicy called
basic: Plugin2ClassLoader.isTrustedByPolicy returns false
Run Code Online (Sandbox Code Playgroud)
所有三种浏览器的行为.
- Firefox和Chrome:根本不加载.
- IE:第一次加载时无法加载.
如果需要更多细节,请告诉我.请参考源代码来自这里.
我使用下面的方法得到了错误的结果.
public double evaluate(final double leftOperand, final double rightOperand) {
Double rtnValue = new Double(leftOperand * rightOperand);
return rtnValue.doubleValue();
}
Run Code Online (Sandbox Code Playgroud)
输入参数值为:leftOperand = 100和rightOperand = 2.55
我得到了错误答案: 254.99999999999997
正确答案是255.0
我想使用google-gson将json数据解析为java对象.
以下是我要解析的数据示例:
{"isBean":{"userName":"test","password":"password112"}}
Run Code Online (Sandbox Code Playgroud)
IsBean.java
public interface IsBean extends Serializable,IsSerializable{
long getId();
}
Run Code Online (Sandbox Code Playgroud)
User.java
public class User implements IsBean,IsSerializable,Serializable {
String userName;
String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public long getId() {
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
RequestObj.java
public class RequestObj implements IsBean, Serializable,IsSerializable{
IsBean isBean;
@Override
public long getId() { …Run Code Online (Sandbox Code Playgroud) 当我使用BindingResult同@Validated一个方法的注释,验证无法正常工作。如果我BindingResult从方法参数中删除,它工作正常。我用过@ControllerAdvice。
知道为什么它不起作用吗?
我的代码如下:
public ResponseEntity<?> dologin(
@Validated({ Group.Login.class }) @RequestBody User user,
BindingResult errors)
{
// somecode
}
Run Code Online (Sandbox Code Playgroud)
根据验证、数据绑定和类型转换文档,任何验证消息都将自动添加到绑定器的BindingResult.
去掉不会有影响吧?
如何模拟修改私有变量的私有方法?
class SomeClass{
private int one;
private int second;
public SomeClass(){}
public int calculateSomething(){
complexInitialization();
return this.one + this.second;
}
private void complexInitialization(){
one = ...
second = ...
}
}
Run Code Online (Sandbox Code Playgroud) 当长变量带有前导零时,我无法理解为什么这样的输出.
public class Test{
public static void main(String[] args) {
long var1=00123l;
long var2=123l;
System.out.println("Variable 1--->"+var1);
System.out.println("Variable 2--->"+var2);
System.out.println(var1==var2);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Variable 1--->83
Variable 2--->123
false
Run Code Online (Sandbox Code Playgroud)