相关疑难解决方法(0)

如果我的对象真的可序列化,如何进行单元测试?

我正在使用C#2.0和Nunit Test.我有一些需要序列化的对象.这些对象非常复杂(在不同级别继承并包含许多对象,事件和委托).

如何创建单元测试以确保我的对象可以安全地序列化?

.net c# serialization unit-testing .net-2.0

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

有没有办法检查对象是否可以在java中序列化?

我发现Object class在java中,当我浪费了很多时间来解决问题时,java中的序列化不可用.
那么任何人都可以知道另一个类是不可序列化的,或者是否有任何方法来检查该类是否可序列化?

java

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

当Body无法分配给类时,如何调试JMS?

我正在使用Java EE JMS队列.我正在将对象发送到队列中,然后使用MDB接收它们.当将消息体(使用getBody())读入对象时,我得到以下异常:

javax.jms.MessageFormatException: Body not assignable to class ...
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以从中获得更具描述性的错误,这将告诉为什么它不可分配?我也尝试进入调试模式,看看哪种消息对象到达MDB但是我已经看到它被序列化,所以它并没有真正有用.

在将对象类型发送到队列之前,可以在调试器中正确识别它.

附加信息:如果我手动创建一个空对象并发送它,则可以正确识别它.生产对象来自REST端点,包含许多属性,并在此过程中进行了多次转换.某些数据必须阻止分配,但逐步调试每个属性将是一种痛苦,并且只是作为最后的手段.

对于如何在Java中测试类正确实现Serializable(不仅仅是Serializable的实例)的每个答案,对象都被确认为可序列化的

对象发送方式为: jmsContext.createProducer().send(queue, object);

我设法通过将所有属性设置为null然后逐个评论它直到它工作来缩小范围.事实证明,持续时间类型属性不正确?初始化导致问题.在另一种情况下,导致它的是XMLGregorianCalendar属性.尽管如此,这是一种非常hacky的调试方式,我仍然不知道为什么分配失败,我只知道哪个属性导致它.

暂时我最终将实体ID传递到队列而不是完整对象,我通过ID从数据库中检索它们.

完整stacktrace的Pastebin:http://pastebin.com/vWvhDTcr

java debugging jms java-ee

7
推荐指数
1
解决办法
928
查看次数

此代码如何引发NoWhenBranchMatchedException?

在我们最新的应用程序版本中,我们看到了一些kotlin.NoWhenBranchMatchedException报告给Fabric / Crashlytics的消息。

这是有问题的代码段:

private lateinit var welcome: Welcome

// ...

welcome.welcomeStateLoginStatus.let {
    val handled = when (it) {
        UnknownUser -> {
            btn_login.visibility = View.VISIBLE
            btn_logout.visibility = View.GONE

            secondButtonFocusedInfoText = getString(R.string.welcome_login_button_info)
            tv_user_description.text = null
        }
        is InternalUser -> {
            btn_login.visibility = View.GONE
            btn_logout.visibility = View.VISIBLE

            secondButtonFocusedInfoText = "Logout"
            tv_user_description.text = "Logged in as internal user"
        }
        ExternalUser -> {
            btn_login.visibility = View.GONE
            btn_logout.visibility = View.VISIBLE

            secondButtonFocusedInfoText = "Logout"
            tv_user_description.text = "Logged in as external user"
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

android kotlin sealed-class

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

只要它实现Serializable,任何事都可以序列化吗?

我已经看到了这个:如何在java中测试一个类正确地实现了可序列化

我只是有一个更普遍的问题.如果你创建一个这样的对象(比如一个圆圈)(假设有进口):

class Circle implements Serializable {
     int radius;
     Circle(int radius){
         this.radius = radius;
     }

     public void updateRadius(int radius){
         this.radius = radius
     }

     public int getRadius(){
         return radius;
     }
}
Run Code Online (Sandbox Code Playgroud)

它是否需要可序列化所需的全部内容?我是否需要添加更多方法才能正确序列化?我有一个更复杂的课程,但是当这应该提供充足的例子时,并不想发布所有的课程.

java serialization

0
推荐指数
1
解决办法
290
查看次数