String是一个类型,可以这样获取类型,如"a".getClass().getSimpleName()

解决方案 »

  1.   

    String是类型,String.class 是 类型对象。
      

  2.   

    "a".getClass().getSimpleName()    这个得到的是字符串呀
      

  3.   

    如何通过反射得到类似String 这样的东西呢,另外String 这种属于哪个类型呢,Object,Class,还是?
      

  4.   

    人类 张三 = new 人类("张三");
    张三 instanceof 人类  //这是在判断“张三”是不是“人类”这个范畴的一个实例。英语instance :例子,实例。String.class 返回的Class,是从侧面反映了java“万物皆对象”的思想。
    Class是对所有定义的“类”的一个抽象:“类”里会有field、method、Constructor等。
    不光String里有field、method、Constructor,Integer,甚至Object所有的“类”都有field、method、Constructor(只是有些为null)。因此,我们将所有的“类”,再次抽象成一个“类”(类2),给它定义为Class
      

  5.   

    如何通过反射得到类似String 这样的东西呢,另外String 这种属于哪个类型呢,Object,Class,还是? 
      

  6.   

    String是个抽象的东西,就像男人和女人,抽象出来都是人,怎么弄出来人这个东西呢。String也一样。
      

  7.   

    那就是不能通过反射得到类似String这样的东西?
      

  8.   

    得不到类型这种东西,只能得到String字符串这种东西。
      

  9.   

    1.Class类是对java中“类”这个概念的封装。每一个java类都对应一个Class对象。比如String类对应的就是String.class对象。Class类和其他类没有本质的区别,只不过用途有点特殊。
    2.要用反射实现instanceof 效果可以使用Class的方法isInstance(Object obj),比如说,判断一个对象s是否是String类型的,可以这样写:
    String.class.isInstance(s),会返回一个boolean值。
      

  10.   

    如何通过反射得到类似String 这样的东西呢,另外String 这种属于哪个类型呢,Object,Class,还是? 比如我定义如下一个类:
    public class A{
      public String name;
    }如果用的时候,得到A对应的Class实例:Class c = A.class;
    此时可以通过下面的方式得到name属性:Field f = c.getDeclaredField("name");
    再通过f得到其类型:Type t = f.getGenericType();
    此时可以使用t来和String.class做比较:public class TestType {    public static void main(String[] args) throws SecurityException, NoSuchFieldException {
            Class<A> c = A.class;
            Field f = c.getDeclaredField("name");
            Type t = f.getGenericType();
            System.out.println(t.equals(String.class));
        }}class A {
        public String name;
    }