java中如何打印变量返回值类型

user表中cp_id(int)关联company表id(int),拿到的却是company_name,

public User getUserCpId(int id) {
Session session = getSessionFactory().openSession();
Query query = session.createQuery("from User u where u.id = :id");
query.setParameter("id", id);
User user = (User) query.uniqueResult();
session.close();
System.out.println(user.getCp_id()+"====userDao.getUserId");//user.getCp_id拿到的是company_name
return user;
}

如果是对象,那么可以使用getClass().getName()方法获得该对象的类名,
然,还有就是利用反射机制获取原数据类型的,这个时候如果需要确定类型,
同样的,反射机制返回值是对象,比如对于类属性的返回,是Field对象,可以
通过里面的getType().getName()获得该属性的类型名称,下面一个例子:
Type = new Test().getClass().getDeclaredField("testClass").getType().getName(); //得到某个类下属性字段的类型
"w".getClass().getName(); //得到变量类型
new Test().getClass().getName()//得到对象类名
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
一般实例类属性最好用对象类型而不是具体的实例类型。如:
private Integer id好过使用private int id
如果ID不存在则会返回null,而使用int还要初始化。对象类型可以使用str.getClass().getName()就能返回对象的类型java.lang.String。
Integer myi=new Integer(1);
System.out.println(myi.getClass().getName());
打印出来是java.lang.Integer
而如果使用int作为映射将会报错
int myi=1;
System.out.println(myi.getClass().getName());//这样是错误的。

所以在实例化是最好使用对象类型,而不要使用具体的实例类型。本回答被提问者采纳
第2个回答  2013-09-03
举个例子
char a='你'
int b=10;
double c=20.0;
float a=3.34f;
不是很明白你想问什么
要想看变量是什么类型直接看前面声明它的关键字就行了嘛
就像char a='你'中的a就是一个字符型数据了

object instanceof Object,但不能像javascript中一样用于判断原始数据类型,instanceif只用于判断该对象是否为某类的对象。追问

依然很感谢,我初学者比较菜, 问题木有解决。。可否请教?903934400

追答

请教不敢当,我知道的话会告诉你的!

第3个回答  2013-09-03
1 利用java reflect 反射机制

  getType().getName();
  
2 利用instanceof

追问

Thank U!

相似回答