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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© android0276 中级黑马   /  2014-7-6 20:14  /  1008 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima;

  2. public class Test {

  3.         public static void main(String[] args) {

  4.                 Person p1 = new Person();
  5.                 Class c1 = Person.class;
  6.                 Class c2 = p1.getClass();
  7.                 Class c3 = null;

  8.                 try {
  9.                         // =================问题区=======================
  10.                         c3 = Class.forName("test.Person");
  11.                         /*
  12.                          * 为什么这个地方写上test.Person后c2==c3就返回true;而写上Person后c2==c3就返回false
  13.                          */
  14.                         // =================问题区=======================

  15.                 } catch (ClassNotFoundException e) {
  16.                         // TODO Auto-generated catch block
  17.                         e.printStackTrace();
  18.                 }
  19.                 System.out.println(c2 == c3);
  20.         }

  21. }

  22. class Person {
  23.         String name = "shuiguo";

  24.         public String getName() {
  25.                 return name;
  26.         }
  27. }
复制代码


2 个回复

倒序浏览
测试结果如下:
1.   c3 = Class.forName("Person"); 则c2==c3返回true
2. Person类既不在test这个包中,又不是Test的内部类,"test.Person"这个写法会报ClassNotFound异常
回复 使用道具 举报
不加就搜索默认包,可能在其他包内有同名的类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马