com.sun.jdi.InvocationException发生了JDK8中的调用方法

斯里达

我正在将应用程序从JDK 7迁移到JDK8。这样做的时候,com.sun.jdi.InvocationException occurred invoking methodTestField创建如下所示的实例时,我将遇到一个异常调试时出现异常,找不到原因。我怀疑NullPointerException发生了,而InvocationException掩盖了它。我有以下Object方法在中被重写TestField

实用程序类下面的内容是commons-langjar的一部分

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())
    .append("\n ")
    .toString();
}

public boolean equals(Object other) {
    if ( !(other instanceof TestField) ) return false;
    TestField castOther = (TestField) other;
    return new EqualsBuilder()
        .append(this.getName(), castOther.getName())
                .append(this.getRules(), castOther.getRules())
        .isEquals();
}

public int hashCode() {
    return new HashCodeBuilder()
        .append(this.getName())            
        .append(this.getRules())            
        .toHashCode();
}   
}

有没有人遇到过这样的问题。谁能帮我解决这个问题。谢谢。

暴风雪

尽管我还没有遇到这个特定问题,但是我有相当一部分迁移问题,这些问题是由很少的更改引起的,而这些更改被以后的过程掩盖了。

我本来建议您回溯并查看您的toString方法,但似乎已经有几个人遇到了同样的问题。toString或您的toHashCode是最可能的罪魁祸首。在坚果壳中,最有可能引发空指针异常,但会被com.sun.jdi.InvocationException错误掩盖。因此,如果您遇到了空指针异常,那么在此之前仍然有一些事情发生了,但被掩盖了。只需取出部分代码,然后逐步进行操作即可。

这是我认为可以解决此问题的其他问题和答案(我没有将其标记为重复项的声誉):

com-sun-jdi-invocationexception发生调用方法

还要看看这个问题,特别是Robin Green的评论,您是否尝试过以这种方式调试此代码?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

com.sun.jdi.InvocationException在内部使用switch-case时调用方法toString发生

我在 com.sun.jdi.InvocationException 发生调用方法时收到“空指针异常”。在 selenium 中使用 PageFactory 时

com.sun.jdi.InterfaceType中缺少invokeMethod

在Jboss中找不到com.sun.jdi

IntelliJ IDEA无法启动:无法加载JDK类:com.sun.jdi.Field

IntelliJ 2017.1-C中缺少Java调试接口(com.sun.jdi)软件包

如何知道`com.sun.jdi.ObjectReference`是否为枚举?

如何导入和使用com.sun.jdi.VirtualMachine

取决于Eclipse中tools.jar(Sun JDK)中的com.sun.javadoc

JDI和JPDA中的ObjectReference基础对象

“ com.sun。*”和“ sun。*”包中的类不应用于Jersey客户的Sonar问题

SonarQube规则不应使用“ com.sun。*”和“ sun。*”包中的类

Java 9中的com.sun.javafx.collections

导入com.sun.javadoc无法在Eclipse中解析

OpenJDK-com.sun:plugin

错误:jdk-13.0.2中不存在包com.sun.javadoc

JDK7中没有com.sun.tools.javac

在JDK中找不到Mule的Maven安装错误com.sun.tools.jar

使用com.sun.tools.javadoc.Main.execute在jdk 11中运行Doclet的替代方法是什么?

Java Base64 Sun到JDK8

sun.security.x509.CertAndKeyGen和sun.security.pkcs.PKCS10-在JDK8中丢失。实施建议

java.io.IOException:com.sun.enterprise.admin.remote.RemoteFailureException:部署期间发生错误

JDK 1.8 JAXB:未找到提供程序com.sun.xml.bind.v2.ContextFactory

java.lang.ClassNotFoundException:带有JDK9的com.sun.codemodel.CodeWriter

Java 8到Java 11:包com.sun.jndi.ldap不可见

Sun的Java软件包命名约定:sun vs. com.sun

com.sun.org.apache.xerces.internal.dom.ElementImpl的替代方法

com.sun.jersey.api.client.WebResource.Builder.get 方法会等待响应吗?

使用com.sun.net.httpserver,为什么图像未在Java生成的html页面中显示?