在一个包中,如何导入根目录下的类。
如图:
其中在根目录下是有hello类的,但是按alt加enter后没有任何导入提示,
但是如果在另外一个包中创建hello类,alt加enter就可以直接提示导入。
这是idea的问题吗?
不是大小写的问题,不在同一个包类。
在非默认包中new默认包的类的对象是不允许的,也是无法导入的。楼主如果真想得到默认包类的对象,可以使用反射,但只能使用根类Object的方法;或者你也可以让默认包的类继承或实现非默认包的类或接口,然后就可以使用父类或父接口的方法了。
Class c = Class.forName("Hello");
Object h = c.newInstance();
//如果Hello有父类或实现的接口,比如World
World w = (World)h;
从来没有遇到这个问题,因为我不给自己挖坑。强烈建议不要使用默认包(也就是你说的根目录),除非你写的是只有一个类的程序。
如果你只是技术探讨,那么我告诉你答案是:做不到,除非用反射。可以参考一下这个
最后,请修改一下你的标题,注意你问问题的态度,大家没有义务回答你的问题,你也没有付费,不是吗?
因为两个类在同一个包下不需要导入。
import hello
或者将hello首字母大写
刚刚试了下, 还真不行。
不过我到现在也没碰到过像你这种需求, 一般都是建议不使用默认包。
问题1:没看到hello类的截图,不好回答
问题2:你一开始就问同一个包,如何导,上面的人都基本答到了点。
问题3:我看哪些认真回答你了,你的回复有点过分,不是一个请教别人的态度
问题4:看你导了Spring 之类的包,如果学到这,那一些类命名规范还是要遵循的。不过不工作只玩玩也没事。
问题5: hello hello = new hello();
如果那这个hello是类还是类的对象?
Hello类的名称首字母要大写。
hello不是pulic的吧