Java 如何打印变量类型-变量为整数时出错

Java 如何打印变量类型-变量为整数时出错,java,Java,我目前正在使用Objectdb和使用NetBeans的Im进行一个项目。 我希望有一个myString方法可以显示此消息: 变量类型为int。 当我从另一个主类调用对象驱动程序时 [ ] 当然,我不想准确地输入这个东西,这样我就可以打印出来, 但是我想要一个方法,如果它是整数,可以返回int,如果它是String,可以返回String,等等。 对于字符串变量,它是正常的。 但是当我有一个整数时,它会向我显示消息“int不能被解引用”,因此编译器不会传递该消息。 这是正确解决问题的方法吗? 这很重

我目前正在使用Objectdb和使用NetBeans的Im进行一个项目。 我希望有一个myString方法可以显示此消息: 变量类型为int。 当我从另一个主类调用对象驱动程序时 [

] 当然,我不想准确地输入这个东西,这样我就可以打印出来, 但是我想要一个方法,如果它是整数,可以返回int,如果它是String,可以返回String,等等。 对于字符串变量,它是正常的。 但是当我有一个整数时,它会向我显示消息“int不能被解引用”,因此编译器不会传递该消息。 这是正确解决问题的方法吗? 这很重要,请提前感谢

import javax.persistence.*;
import java.util.*;

@Entity
public class Driver{    

@Id 
    private int Driverid;

    public void setDriverid(int Driverid) {
        this.Driverid= Driverid;
    }

    public int getDriverid() {
        return Driverid;
    }

public Driver(int getDriverid){
        this.Driverid=Driverid; 
}

public String toString() {
        return  "Variable type is " + Driverid.getClass.getSimpleName() + "." ;
}//end toString

}//end class Driver

尝试使用
Integer
类而不是
int
。int是基元类型,Integer不是。

您可以检查实例类型:

if(object instanceof Integer){...}
else if(object instanceof String){...}

我不知道为什么要在运行时确定编译时已知的内容,但可以使用反射

public String toString() {
    return "Variable type is " + getDeclaredFields()[0].getType().getSimpleName() + "." ;
}
toString()打印


当然,您不能在任何
基元类型上调用
getClass()
。。。您可以将您的
DriverId
声明为
Integer
,并使其工作。

我相信它被称为
DriverId.getClass()
,而不是
DriverId.getClass
。您不能在原语上使用
instanceof
。我从编译器获得“错误:所需的意外类型:找到的引用:int”。也许你正在考虑包装类。你不能写“object instanceof int”。。。改为使用整数。如果这不起作用,我会在我的一个项目中检查它!那么,
inta=10;如果(整数的实例)
永远无法工作<代码>整数。整数的(a)实例的值将起作用。。
public String toString() {
    return "Variable type is " + getDeclaredFields()[0].getType().getSimpleName() + "." ;
}
Variable type is int.