使用Struts 2内置JSON实用程序类

在Struts 2项目中,我们需要序列化和反序列化对象,因为我们的要求非常简单,我们决定使用Struts 2 JSONUtil而不是gson 。 import org.apache.struts2.json; String json = JSONUtil.serialize(myAccountVO); // return: {“accountNumber”:”0105069413007″,”amount”:”1500″,”balance”:”215000″} 对于deserialization ,我们面临class cast exception AccountVO vo =(AccountVO) JSONUtil.deserialize(json); //Exception 我发现deserialization返回一个带有对象属性键值的映射。 所以我必须这样做: HashMap map = (HashMap) JSONUtil.deserialize(string) accountVo.setAccountNumber(map.get(“accountNumber”)); …. 我可以做得更好,或者我对这个实用程序的期望太高了。

在Java中检查对象的NULL的最佳方法

我有一个解决方案来检查从对象中提取的NULL值,但我觉得可能有比我在这里做的更好的方法。 所以请建议我使用代码片段的最佳方法 🙂 我将把我的xml内容传递给unmarshalling方法然后将unmarshalledValues传递给null check方法(即ValidateInputFiled) Contents unmarshalledValues = unmarshalingContent( xml ); inputCheck = ValidateInputField( unmarshalledValues ); 我有一个POJO用于​​我的XML元素,如下所述, @XmlRootElement( name = “contents” ) public class Contents { @XmlElement String A; @XmlElement String B; @XmlElement String C; @XmlAttribute String D; public String getA() { return A; } public String getB() { return B; } public String getC() […]

Grails XML编组:更改默认的“”根元素名称

默认情况下,Grails在XML中使用元素标记在其根目录中呈现List。 同样,它使用 渲染Map。 我想控制根元素的名称。 如果我正在返回User的ArrayList,那么我想看看: … … 我怎样才能实现上述目标? 以下是要求: 轻松将此序列化应用于50多个域类 从开发人员中抽象出来,因此在渲染域对象期间不需要显式编码(即,当调用render()或respond() ,仍会传入ArrayList,没有像as MyNewType那样的显式转换/转换) 能够处理空列表的边缘情况(应该返回 ) 尼斯对富人: 如果这个公式也可以应用于Map,那很棒:) 我已经半成功地实现了上述目标,除了我不知道如何解释空列表案例。 我实现了自己的ObjectMarshaller,它呈现了List类型的所有对象。 只要列表包含一个元素,我就可以检查元素的类型并确定复数标记名称应该是什么(User => users)。 但是如果列表是空的,并且由于Javagenerics是擦除的(除非在Groovy中有所不同?)然后我没有办法正确命名空列表而不是默认为类的东西,这是不可接受的。 我经历过的一些资源: http://www.cacoethes.co.uk/blog/groovyandgrails/dry-json-and-xml-with-grails http://grails.1312388.n4.nabble.com/Custom-XML-Marshaller-change-the-root-element-name-td4649949.html http://jwicz.wordpress.com/2011/07/11/grails-custom-xml-marshaller/ http://mrhaki.blogspot.com/2013/11/grails-goodness-register-custom.html http://manbuildswebsite.com/2010/02/15/rendering-json-in-grails-part-3-customise-your-json-with-object-marshallers/

从inheritance的受保护Java字段创建公共访问器

我该如何进行以下工作: class Foo extends javax.swing.undo.UndoManager { // increase visibility – works for method override def editToBeUndone: javax.swing.undo.UndoableEdit = super.editToBeUndone // fails for field def edits: java.util.Vector[javax.swing.undo.UndoableEdit] = super.edits } 请注意, edits是CompoundEdit ( UndoManager的超类)中的受保护字段。 我想要一个具有相同名称的公共访问器来读取该字段。 我该怎么办? :8: error: super may be not be used on variable edits def edits: java.util.Vector[javax.swing.undo.UndoableEdit] = super.edits ^

ProGuard混淆,java,Google Gson和通用集合 – 如何保留成员?

我有一个这样的课: public class MyClass { private Queue myQueue; } 我的问题是我无法让ProGuard在使用Google Gson序列化到json之后保留myQueue。 会发的是会员名称“myQueue”被序列化为“a”。 显然,反序列化会破坏。 以下是我尝试过的一些ProGuard配置。 -keepclassmembers class com.my.package.MyClass { #private java.util.Queue myQueue; #private java.util.Queue myQueue; private java.* myQueue; } 同 private java.util.Queue myQueue; …… ProGuard抱怨说这堂课不详。 消息是: 注意:配置引用未知类java.util.Queue’ 运用 private java.* myQueue; ….摆脱ProGuard警告,但是,正如我所说,成员myQueue没有保存在json输出中。 它被序列化为“a”。 其余的相关ProGuard配置如下: -renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable -keepattributes *Annotation* #gson -keepattributes Signature -adaptresourcefilenames **.properties,**.gif,**.jpg,**.png,**.wav -adaptresourcefilecontents […]

LibGDX FreeTypeFontGenerator NoSuchFieldexception

现在,我正在使用Java中的LibGDX构建一个小游戏,我想使用TTF字体。 我已将gdx-freetype.jar和gdx-freetype-natives.jar添加到我的构建路径中,但是当我运行我的应用程序时,出现“java.lang.NoSuchFieldError:id”错误。 负责的代码: FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal(“data/Prosto.ttf”)); BitmapFont font = generator.generateFont(12); generator.dispose(); 我在某处看到它可能与JAR的版本有关。 我已经尝试再次运行设置UI,我尝试过其他版本的JAR,但无济于事。 编辑:这是完整的堆栈跟踪: Exception in thread “LWJGL Application” com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoSuchFieldError: id at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:116) Caused by: java.lang.NoSuchFieldError: id at com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateData(FreeTypeFontGenerator.java:288) at com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateFont(FreeTypeFontGenerator.java:137) at com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateFont(FreeTypeFontGenerator.java:148) at com.serialbit.personal.MainMenu.create(MainMenu.java:44) at com.serialbit.personal.MainMenu.(MainMenu.java:32) at com.serialbit.personal.Tyredus.create(TyredusGame.java:8) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:130) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110)

获取点击JPanel的颜色?

我只想要一个方法来激活,如果点击的像素是白色的。 我该如何实现? 试图寻找一种在coord上返回颜色的方法,但我找不到一个。

JPanel上的圆角边框

我在这里得到的是一个带有圆形边框的JPanel,设置如下: panel.setBorder(new LineBorder(PanelColor, 5, true)); 问题是,在每个角落中,有2条对角不透明线从外角到内角,即边界的长度。 无论边境背后是什么,都可以看出来。 有没有办法摆脱这些线条,使整个边框一个纯色? 谢谢! 我附上一张照片,但我没有足够的代表这样做:P

如何在java中使用Pattern matcher?

让我们说字符串是xyz我想从字符串中提取xyz 。 我用了: Pattern titlePattern = Pattern.compile(“&lttitle&gt\\s*(.+?)\\s*&lt/title&gt”); Matcher titleMatcher = titlePattern.matcher(line); String title=titleMatcher.group(1)); 但是我收到了titlePattern.matcher(line)的错误;

避免将Spring Framework特定服务显示为Swagger接口的一部分

我使用的是spring-boot-starter-parent 1.3.3.RELEASE。 我无法在Swagger UI中禁用以下端点。 需要禁用: – Entity Metadata Services profile-controller repository-controller 我使用代码禁用了以下端点。 已禁用的端点: – environment-manager-mvc-endpoint generic-postable-mvc-endpoint restart-mvc-endpoint 码:- public Docket appHierarchyServiceApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(Predicates.not(RequestHandlerSelectors.basePackage(“org.springframework.boot”))) .paths(PathSelectors.any()).build() 如何在Swagger UI中禁用配置文件和存储库控制器? 请提供您的意见。