当变量是整数时,如何打印变量错误的类型

时间:2012-09-25 12:37:21

标签: java

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

 import javax.persistence.*;
 import java.util.*;
 //import javax.jdo.*;
 import java.sql.*;

 public class Main { 

public static void Element(Object obj){
    System.out.println(obj);
}//end method Element

 public static void main(String[] args) {

 Element(Driver);

}//end main

] 当然我不想输入这个东西所以我可以打印出来, 但相反,我想要一个方法,如果它是一个整数,可以返回int,String,如果它是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

4 个答案:

答案 0 :(得分:2)

我不确定你为什么要在运行时确定编译时已知的东西,但你可以使用反射。

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

toString()print

Variable type is int.

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以检查实例类型:

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

答案 3 :(得分:0)

当然,您无法在任何getClass()上致电Primitive Type ...您可以将DriverId声明为Integer,然后让它发挥作用..