Tag: 对象

jackson – 将java对象转换为json – 需要所有关键键到大写

需要你的帮助将java对象转换为json。 当前json结果显示小写字母的所有键,我需要它是大写。 ObjectMapper mapper = new ObjectMapper(); Writer strWriter = new StringWriter(); mapper.writeValue(strWriter, obj); String jsonString= strWriter.toString(); 结果是 [{“flags”:”1″,”name”:”Peter”,”location”:”London”,”startDate”:”2012-01-06 00:00″}] 但我想要这样的结果(所有关键键值应该是大写的): [{“FLAGS”:”YU”,”NAME”:”Peter”,”LOCATION”:”London”,”STARTDATE”:”2012-01-06 00:00″}] 并且也可以这样(大写的关键第一个字母): [{“Flags”:”1″,”Name”:”Peter”,”Location”:”London”,”StartDate”:”2012-01-06 00:00″}] 谁可以帮我这个事。 提前致谢。

所有类如何从Objectinheritance?

所有类都inheritance自java.lang.Object ,尽管extends Object (通常)不会在任何地方写出。 这怎么可能?

com.sun.jdi.InvocationException在JDK8中调用了方法

我正在将我的应用程序从JDK 7迁移到JDK 8.在执行操作时,我遇到了一个exception,当创建如下所示的TestField实例时, com.sun.jdi.InvocationException occurred invoking method了com.sun.jdi.InvocationException occurred invoking method 。 我在调试时遇到exception,无法找到原因。 我怀疑发生NullPointerException并且InvocationException会掩盖它。 我在TestField覆盖了以下Object方法。 下面的实用程序类是commons-lang jar的一部分。 HashCodeBuilder EqualsBuilder ToStringBuilder public class TestField { private String name; private Rules rules; public TestField(String name, Rules rules) { this.name = name; this.rules = rules; } public String toString() { return new ToStringBuilder(this) .append(“\n name”, this.getName()) .append(“\n Rules”, this.getRules()) […]

在Java中,如何对垃圾收集对象数组?

当一个对象数组不再被引用时,该数组中的对象是否也被垃圾收集了? (假设没有变量引用元素) 在这个页面中, http : //java.sys-con.com/node/376​​13它说 – “最大的危险是将一个对象放入一个集合而忘记删除它。该对象使用的内存永远不会被回收。 “ 如果确保使引用无效,为什么要无人认领该内存? 谢谢

如何实现Object类中的hashCode()方法?

可能重复: java Object中hashCode的实现是什么? 当我浏览Object类时,我发现只有hashCode()方法的声明。 实施部分在哪里? 如果没有实现,hashCode()方法如何返回结果?

为Class创建实例?

查看Integer类的源代码,只是偶然发现下面这行 Class TYPE = (Class) Class.getPrimitiveClass(“int”); getPrimitiveClass是一个本机方法。 static native Class getPrimitiveClass(String name); 为什么它成为一种本地方法? 真的很想知道。 如何为Class创建实例? 这是否与为ex创建实例的常规方式不同: Ex e = new Ex() ?

Java:我可以将对象列表转换为String 列表,反之亦然?

这可能不经过列表并投射对象吗? 我还需要将List转换为List (T =预定义对象),如果可能的话? 编辑:为了澄清,我正在尝试使用List作为我的代码中广泛使用的类方法的返回类型。

对字节码和对象的澄清

我正在写一个字节码指导员。 现在,我试图找出在对象存在的情况下如何做到这一点。 我想对我在JVMS中阅读的两行(第4.9.4节)做一些澄清: 1)“validation者在初始化之前拒绝使用新对象的代码。” 我的问题是,“使用”在这里意味着什么? 我猜这意味着:将它作为方法属性传递,在其上调用GETFIELD和PUTFIELD ,或者调用它上面的任何实例方法。 他们的其他禁止用途? 我相信它可以遵循其他指令,如DUP , LOAD和STORE 。 2)“在该方法调用myClass的另一个实例初始化方法或其直接超类之前,该方法可以对此执行的唯一操作是分配在myClass中声明的字段。” 这意味着在方法中,在调用另一个之前允许GETFIELD和PUTFIELD。 但是,在Java中,在调用super()或this()之前对实例字段执行任何操作都会导致编译错误。 有人可以澄清一下吗? 3)我还有一个问题。 对象引用何时初始化,因此可以自由使用? 通过阅读JVMS,我想出了一个对象是否被初始化的答案,取决于每种方法。 在某个时间点,可以为方法初始化对象,但不能为另一个方法初始化对象。 具体来说,当该方法调用的返回时,对象的方法被初始化。 例如,考虑main()方法创建了一个对象并调用了 ,然后调用了超类的 。 从super()返回后,该对象现在被认为是由初始化的,但尚未为main()初始化。 这是否意味着,在super()之后的 ,我可以将对象作为参数传递给方法,甚至在返回到main()之前。 有人可以证实这整个分析是真的吗? 感谢您的时间。 ps:我实际上已经向Sun论坛发布了相同的问题,但回复。 我希望我能在这里有更多的运气。 谢谢。 更新 首先感谢您的答案和时间。 虽然我没有得到一个明确的答案(我有很多问题,其中一些有点模糊),但你的答案和例子,以及随后的实验,对于我更深入地了解JVM如何工作非常有用。 我发现的主要问题是Verifier的行为因不同的实现和版本而不同(这使得字节码操作的工作变得更加复杂)。 问题在于不符合JVMS,或者validation者的开发人员缺乏文档,或者JVMS在validation者的区域中有一些微妙的模糊性。 最后一件事,SO Rocks !!! 我在官方的Sun JVM规范论坛上发布了同样的问题,直到现在我仍然没有回答。

使用GSon反序列化Map

我有一个包含混合类型的Map,就像这个简单的例子一样 final Map map = new LinkedHashMap(); map.put(“a”, 1); map.put(“b”, “a”); map.put(“c”, 2); final Gson gson = new Gson(); final String string = gson.toJson(map); final Type type = new TypeToken<LinkedHashMap>(){}.getType(); final Map map2 = gson.fromJson(string, type); for (final Entry entry : map2.entrySet()) { System.out.println(entry.getKey() + ” : ” + entry.getValue()); } 我得到的是普通的Object ,没有Integer ,没有String 。 […]

如何在java中打印/记录字符串数组?

小背景: 我有csv文件,它有很多行,每行都有字符串元素,这样一行的例子就是 String[] data = [20,11,Clothing,TShirts,Abercombie,Gap] data.toString() = [Ljava.lang.String;@1152e94] 现在在我的解析器中,我正在解析此csv文件,并将文件中的每一行都作为String[] data 。 在我的日志页面中,我需要id和文件中的行。 目前,如果我尝试打印然后得到像[Ljava.lang.String;@1152e94这样的值,我的问题是如何获得像[20, 11, Clothing, TShirts, Abercombie, Gap]这样的数组元素的实际列表? 尝试使用默认的toString()但仍然提供相同的LString数据。