0

我目前正在使用 Objectdb 和我使用 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 cannot be dereferenced”,因此编译器不会通过它。 这是一种正确解决问题的方法吗?这很重要,所以提前感谢。

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

4 回答 4

2

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

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

toString() 打印

Variable type is int.
于 2012-09-25T12:40:24.403 回答
0

尝试使用Integer类而不是int. int 是原始类型, Integer 不是。

于 2012-09-25T12:38:36.307 回答
0

您可以检查实例类型:

if(object instanceof Integer){...}
else if(object instanceof String){...}
于 2012-09-25T12:39:58.600 回答
0

当然你不能调用getClass()任何Primitive Type......你可以声明你的DriverIdas Integer,并让它工作..

于 2012-09-25T12:40:33.243 回答