小编bNd*_*bNd的帖子

为什么HashMap值不在List中强制转换?

我将值放入形式的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)

java collections arraylist hashmap

69
推荐指数
4
解决办法
7万
查看次数

如何知道嵌入在spring boot中的tomcat版本

我在项目中使用了弹簧靴.它有inbuild tomcat服务器.我发现了一个罐子spring-boot-starter-tomcat-1.2.5.RELEASE.jar.我需要在linux服务器上做一些与tomcat相关的配置.

我怎样才能知道这个中使用的tomcat版本?

java tomcat maven spring-boot

14
推荐指数
6
解决办法
3万
查看次数

在构造函数中传递参数的最佳方法

我有一个在表格布局中创建行的类.行创建取决于数据和元数据.正如所以我创建的元数据属性作为静态和使用初始化一次元数据是相同像显示/隐藏可见属性,每一行等initWidgetRowWidget.

只是示例:

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方法.

提前致谢.

java design-patterns

8
推荐指数
1
解决办法
1432
查看次数

使用JAXB编组长原始类型

为了使用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)

java jaxb

6
推荐指数
2
解决办法
8602
查看次数

证书加载问题

我开发了一个小程序,我发现了一个奇怪的行为.

这适用于基于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)

所有三种浏览器的行为.

  1. Firefox和Chrome:根本不加载.
  2. IE:第一次加载时无法加载.

如果需要更多细节,请告诉我.请参考源代码来自这里.

java security applet digital-certificate

6
推荐指数
1
解决办法
1585
查看次数

获得错误的结果以评估100*2.55的值

我使用下面的方法得到了错误的结果.

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

java

5
推荐指数
1
解决办法
1166
查看次数

使用gson解析json到java对象的问题

我想使用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)

java gwt gson

5
推荐指数
1
解决办法
2万
查看次数

带有 BindingResult 的 Spring 4 @Validation 注释不起作用

当我使用BindingResult@Validated一个方法的注释,验证无法正常工作。如果我BindingResult从方法参数中删除,它工作正常。我用过@ControllerAdvice

知道为什么它不起作用吗?

我的代码如下:

public ResponseEntity<?> dologin(
        @Validated({ Group.Login.class }) @RequestBody User user,
        BindingResult errors)
{
    // somecode
}
Run Code Online (Sandbox Code Playgroud)

根据验证、数据绑定和类型转换文档,任何验证消息都将自动添加到绑定器的BindingResult.

去掉不会有影响吧?

java spring spring-validator

5
推荐指数
1
解决办法
6546
查看次数

如何模拟修改私有变量的私有方法?

如何模拟修改私有变量的私有方法?

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)

java testing easymock mockito powermock

4
推荐指数
1
解决办法
1550
查看次数

具有前导零输出的长变量

当长变量带有前导零时,我无法理解为什么这样的输出.

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)

java

3
推荐指数
2
解决办法
960
查看次数