我目前正在使用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
答案 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
,然后让它发挥作用..