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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.lang.reflect.Constructor;
import java.lang.reflect.*;
import java.lang.reflect.Method;
public class reflact {

        /**
         * @param args
         */
        public static void main(String[] args)throws Exception{
                // TODO Auto-generated method stub
                String x = "abc";
             Class cls1 = x.getClass();
             Class cls2 = String.class;
             Class cls3 = Class.forName("java.lang.String");
             System.out.println(cls1==cls3);
             System.out.println(cls1==cls2);
             System.out.println(cls1.isPrimitive());
             Constructor cons = cls1.getConstructor(StringBuffer.class);
             String str =(String) cons.newInstance(new StringBuffer("abc"));
             System.out.println(str.charAt(2));
             field fie = new field(3,5);
             Field f = fie.getClass().getDeclaredField("x");
             f.setAccessible(true);
             System.out.println(f.get(fie));
             changeab(fie);
             System.out.println(fie);
             Method method1 = String.class.getMethod("charAt", int.class);
             System.out.println(method1.invoke(x,2));
             
        }
         private static void changeab(Object obj) throws Exception{
                 Field[] fies = field.class.getFields();
                 for (Field field : fies){
                         if (field.getType()== String.class){
                                String oldvalue= (String)field.get(obj);
                                String newvalue = oldvalue.replace('b', 'a');
                                field.set(obj,newvalue);
                         }
                         
                 }
                 
         }
             
}
就这段代码 奇怪了。为什么上面的导包中只写import java.lang.reflect.*;不写import java.lang.reflect.Method;就会报错。按照道理来说
import java.lang.reflect.*;是包括import java.lang.reflect.Method;所以应该可以不写import java.lang.reflect.Method;  但是这里为什么不写不行?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 新年快乐!

查看全部评分

1 个回复

正序浏览
让你把Method也写出来说明如果不写出来那么一定有歧义。别的包中应该也有Method方法,不知道你是要用哪个包的!

评分

参与人数 1黑马币 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马