小编Rea*_*tic的帖子

HashMap不可序列化

HashMapSerializable键/值应该是Serializable.

但这对我不起作用.尝试了一些其他IO流.没有用.

有什么建议吗?

测试代码

public class SimpleSerializationTest {
    @Test
    public void testHashMap() throws Exception {
        HashMap<String, String> hmap = new HashMap<String, String>() {{
            put(new String("key"), new String("value"));
        }};

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ObjectOutput out = null;
        out = new ObjectOutputStream(bos);
        out.writeObject(hmap);
        byte[] yourBytes = bos.toByteArray();
        if (out != null) {
            out.close();
        }
        bos.close();

        ByteArrayInputStream bis = new ByteArrayInputStream(yourBytes);
        ObjectInput in = null;
        in = new ObjectInputStream(bis);
        Object o = in.readObject();
        bis.close();
        if (in != …
Run Code Online (Sandbox Code Playgroud)

java hashmap serializable

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

如何在 Monaco Editor 中实现更多语言支持?

我想将 Monaco Editor 用于个人项目,但我看到它只是默认支持 html/css/javascript

我希望它支持更多语言,例如 Java 或 Python

我找不到任何关于如何实现这一点的明确教程,因此如果有人已经这样做或知道如何做到这一点,我将不胜感激。

javascript monaco-editor

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

PSQLException:此连接已关闭 - Spring Boot + AWS RDS + Postgres

当我PSQLException: This connection has been closed尝试访问 AWS RDS 中的 Postgres 数据库时,出现以下错误消息:异常是随机发生的(并非每次运行代码时都会发生),如果执行到以下代码之前需要一段时间,则更有可能发生:

@Transactional
public void revokeChanges(ArrayList<Integer> changeIds) {
    jdbcTemplate.batchUpdate(sqlUpdate,
            new BatchPreparedStatementSetter() {
                @Override
                public void setValues(PreparedStatement ps, int i) throws SQLException {
                    ps.setStuff..
                    ...
                }
                @Override
                public int getBatchSize() {
                    return changeIds.size();
                }
            });
    jdbcTemplate.batchUpdate(sqlInsert,
            new BatchPreparedStatementSetter() {
                @Override
                public void setValues(PreparedStatement ps, int i) throws SQLException {
                    ps.setStuff...
                }
                @Override
                public int getBatchSize() {
                    return changeIds.size();
                }
            });
Run Code Online (Sandbox Code Playgroud)

连接东西:

spring.datasource.url=jdbc:postgresql://my-url:port/dbName?tcpKeepAlive=true&autoReconnect=true

spring.datasource.driver-class-name=org.postgresql.Driver

相关POM:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.9.RELEASE</version>
</parent>

<dependencies> …
Run Code Online (Sandbox Code Playgroud)

java postgresql spring jdbc spring-jdbc

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

如何基于共同领域杰克逊抽象地反序列化不同的枚举类型?

问题:

我在enum杰克逊的反序列化中与代码中的名字不符,下面是json的样本.

{
    "thing1": {"foo": "cool-guy"},
    "thing2": {"foo": "loser-face"}
}
Run Code Online (Sandbox Code Playgroud)

这是enum,我interface稍后会解释.

enum Foo implements HasText {
    COOL_GUY("cool-guy"), LOSER_FACE("loser-face"), // etc...

    private String text;

    private Foo(String text) {
        this.text = text;
    }

    @Override
    public String getText() {
        return text;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道如何通过在foo的setter方法上创建反序列化器(下面)和注释来为每个enum 单独解决这个问题@JsonDeserialize(using = FooDeserializer .class).

public class FooDeserializer extends JsonDeserializer<Enum<Foo>> {
    @Override
    public Foo deserialize(JsonParser p, DeserializationContext context) throws Exception {

      if (p.getCurrentToken().equals(JsonToken.VALUE_STRING)) {
        String jsonText = p.getText();
        Stream<Foo> stream …
Run Code Online (Sandbox Code Playgroud)

java generics enums json jackson

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

如何从ByteBuffer中读取数据

如何读取ByteBuffer中存储的数据?

  • setValue()- 获取值“12 10”并转换为十六进制值并存储在String[]数据中。
  • write()- 将数据转换为字节并存储在ByteBuffer dest.
  • readBuffer- 我如何从中读取数据ByteBuffer
static String[] data = {};
//value = "12 10";
String setValue(String value) {
    String[] samples = value.split("[ ,\n]+");
    data = new String[samples.length];

    //Generates Hex values
    for (int i = 0; i < samples.length; i++) {
        samples[i] = "0x"+String.format("%02x", Byte.parseByte(samples[i]));
    //data[i] will have values 0x0c, 0x0a
        data[i] = samples[i];
    }
    System.out.println("data :: " +Arrays.toString(samples));
    return value;
}


void write(int sequenceNumber, ByteBuffer dest) { …
Run Code Online (Sandbox Code Playgroud)

java bytebuffer

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

将十进制数字字符串转换为BCD的算法

我正在寻找一种方法将字符串转换为BCD等价物.我使用java,但它确实不是语言的问题.我试图逐步了解如何将字符串转换为BCD.

例如,假设我有以下字符串;

"0200" (This string has four ASCII characters, if we were in java this string had been contained in a byte[4] where byte[0] = 48, byte[1] = 50, byte[2] = 48 and byte[3] = 48)
Run Code Online (Sandbox Code Playgroud)

在BCD中(根据此页面:http://es.wikipedia.org/wiki/Decimal_codificado_en_binario):

0 = 0000
2 = 0010
0 = 0000
0 = 0000
Run Code Online (Sandbox Code Playgroud)

好吧,我认为转换是正确的,但我必须将其保存在一个字节[2].我该怎么办?之后,我必须读取BCD并将其转换为原始字符串"0200",但首先我必须将String解析为BCD.

问候!

java arrays string bcd

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

如何在TreeMap的同一键中添加多个值?

我的树图是

Map<String, Double> restrMap = new TreeMap<String, Double>(); 
Run Code Online (Sandbox Code Playgroud)

将下面的两个值添加到treeMap时,仅显示一个。第二个值(当出现时)更新第一个。

6、8.00
6,5.00

如何为相同的键(可能在不同的行中)添加两个值?

java treemaps

3
推荐指数
1
解决办法
3120
查看次数

Java数组结构

我是Java编程的新手.在向前迈进之前,我正在清理所有的概念.我正在阅读一个数组章节,其中说创建数组的基本结构是:

Type[] var_name = new Type[limit];
Run Code Online (Sandbox Code Playgroud)

我正在浏览一些开放式课件.在这些幻灯片中,他们将类名插入到数组的类型中.例如:

public class Baby {
   Baby[] siblings;
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下基本数组结构和类内部结构之间的区别.

java arrays

3
推荐指数
1
解决办法
456
查看次数

用static关键字覆盖实例方法

如何在子类中将超类的实例方法重写为静态?我认为这是不可能的,但是有任何间接方式吗?

public class A {
   public void test(){
       System.out.println("");
   }
}

public class B extends A{
    public static void test(){//test() in B cannot override test() in A 
    //overriding method is static

   }
}
Run Code Online (Sandbox Code Playgroud)

java

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

GC不会从weakhashmap中删除对象

我有一个测试应用程序,其中一个类存储一个地图,一个按钮调用该类的方法:

Map<Object, Object> weakMap = new WeakHashMap<Object, Object>();
Run Code Online (Sandbox Code Playgroud)

按钮执行此操作:

public void fillWeakHashMap(int size) {
    List<String> createObjects = (List<String>) createObject(size);
    for (Object ob : createObjects) {
        weakMap.put(ob, ob);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以带有地图的主类生活,但我放在它上面的对象是用不同的方法创建的,因为WeakHashMap我认为退出方法后fillWeakHashMap,GC中的键/对象将被清除.

我打开VisualVM-> VisualGC并单击Monitor-> PerformGC 10次,旧空间几乎已满,这意味着GC不清除这些对象.那么我做错了什么?

java garbage-collection weakhashmap

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