有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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等等。 对于字符串变量,这是可以的。 但是当我有一个整数时,它会显示消息“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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

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

    toString()打印

    Variable type is int.
    
  3. # 3 楼答案

    您可以检查实例类型:

    if(object instanceof Integer){...}
    else if(object instanceof String){...}
    
  4. # 4 楼答案

    当然,你不能在任何Primitive Type上调用getClass()。。。你可以将你的DriverId声明为Integer,然后让它工作