A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package strengthenTest;

  2. public class ReflectPoint {

  3.         private int x;
  4.         public int y;
  5.        
  6.         public ReflectPoint(int x, int y) {
  7.                 super();
  8.                 this.x = x;
  9.                 this.y = y;
  10.         }
  11.        
  12. }
复制代码
  1. package strengthenTest;

  2. import java.lang.reflect.Constructor;
  3. import java.text.DateFormat.Field;

  4. public class ReflectTest {

  5.         /**
  6.          * @param args
  7.          * @throws Exception
  8.          */
  9.         public static void main(String[] args) throws Exception {
  10.                 // TODO Auto-generated method stub
  11.                 String str1 = "abc";
  12.                 Class cls1 = str1.getClass();
  13.                 Class cls2 = String.class;
  14.                 Class cls3 = Class.forName("java.lang.String");
  15.                 System.out.println(cls1 == cls2);
  16.                 System.out.println(cls1 == cls3);
  17.                
  18.                 System.out.println(cls1.isPrimitive());
  19.                 System.out.println(int.class.isPrimitive());
  20.                 System.out.println(int.class == Integer.class);
  21.                 System.out.println(int.class == Integer.TYPE);
  22.                 //数组类型的class实例对象用的是.isArray()
  23.                 System.out.println(int[].class.isPrimitive());
  24.                 System.out.println(int[].class.isArray());
  25.                 //总之,只要是在源程序中出现的类型,都有各自的class实例对象,例如int[], void
  26.                 //可以调用isPrimitive和isArray方法知道是什么样的类型
  27.                
  28.                
  29.                 //可以传进来若干个class类型也可以传进来一个数组进来  jdk1.5新特性可变参数
  30.                 String.class.getConstructor(StringBuffer.class);
  31.                
  32.                 Constructor constructor1 = String.class.getConstructor(StringBuffer.class);
  33.                 String str2 = (String)constructor1.newInstance(new StringBuffer("abc"));
  34.                                                 //编译期不知道是(String)
  35.                 System.out.println(str2.charAt(2));
  36.                 //程序开发分编译期和运行期,错误出在哪个阶段
  37.                 ReflectPoint pt1 = new ReflectPoint(3,5);
  38.                 Field fieldY = pt1.getClass().getField("y");
  39.                 System.out.println(fieldY.get(pt1));
  40.                
  41.         }

  42. }
复制代码

4 个回复

倒序浏览

改成这样就正常,求解释~~~
回复 使用道具 举报
对于导包的问题有好多,一个包导错了就会出现问题,编译时不一定会报错,但是运行的时候会和你想要的结果不符合,甚至直接报错。前天一个朋友问我,他说他的JDBC一运行就报错,后来研究半天他是包导错了。
回复 使用道具 举报
我也发现 了           视频中的  代码  原来 自动 导入  单个 包
最后在包前面 +   .*;
*把包下的全部导入  就解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马