java编程时,要用到一个方法,但忘了它所处包名或类名,不知道应该用import导入哪个包(类),这时怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编程时,要用到一个方法,但忘了它所处包名或类名,不知道应该用import导入哪个包(类),这时怎么办?相关的知识,希望对你有一定的参考价值。

比如说我现在编程的时候想用getClass()方法,但是怎么也记不起它在哪个类中(事实上它在java.lang.Object这个类中)。那么我就不知道该用“import”导入哪个类(或者包),于是卡住了。
这个时候有什么办法可以找到它所属的 类 或者 包 不,大家编程的时候应该碰到这样的问题吧?
请介绍一个比较正统的方法,比如说在Myeclipse 中搜索 或者 是否直接能在哪个文件中找到。需要一定能找到的,像谷哥、度娘这种不算,这种要费很多神,而且要自己去筛选,不是种好方法。

按住CTRL后,点击该方法,就会打开相应的类文件,在看截图地方,哪里有相应的包名,类名等等

参考技术A 知道类,可以自动导入,CTRL+SHIFT+O
如果类名都不知道,就法。
参考技术B 其实可以开启代码智能提示。我平时写代码都是它自动添加import语句的。 参考技术C 你可以查看JDK文档,搜索吧追问

问题是如果在API 文档中用搜索,只能在主界面上搜,也就是说只能搜类这一层面,而搜不了方法。(也就是说比如我要用getClass(),但搜索最多只能搜Object,但搜不了getClass())。

追答

java文档有英文版,和汉化版的,英文版的可以搜到方法,而中文版的则不行,所以推荐使用英文版的文档,你可以试试看,英文版的绝对可以搜到

本回答被提问者采纳
参考技术D 大概猜一下你要用到什么,他和什么有关,然后去查API帮助文档追问

问题是如果在API 文档中用搜索,只能在主界面上搜,也就是说只能搜类这一层面,而搜不了方法。(也就是说比如我要用getClass(),但搜索最多只能搜Object,但搜不了getClass())。

面向接口编程

  上一周我写了采取简单工厂模式的面向接口编程的方法,这周我来介绍另一种模式——命令模式。

  我们或许会遇到这样的问题,当某个方法要完成某一行为时,这个行为的具体实现无法实现确定,必须在调用这个方法时才可以确定,这种场景就是所谓的命令模式,但是Java并不能直接将方法体当参数传入,这时我们就用到了面向接口编程的方式。

  假如我们要定义一个处理数组的类ArrayHandler,但这是不知道具体怎么处理,首先要有一个借口去定义数组处理方法(就是一个数组处理规范)

  

public interface Handler {

    public void handler(int target[]);
}

 

定义ArrayHandler,我们只要将接口当做参数传入即可

public class ArrayHandler {
    
    //Handler是处理数组的接口,利用Handler处理目标数组
    public void handler(int target[],Handler hd){
        hd.handler(target);
    }
  //测试
public static void main(String[] args){ int[] target = {1,2,3,4,5,6,7,8,9,10,11}; ArrayHandler ah = new ArrayHandler(); ah.handler(target, new PrintArray()); ah.handler(target, new AddArray()); }
}

下面是AddArray和PrintArray的代码,很简单就可以实现,这样就做到了让ArrayHandler和处理行为分离。程序使用Handler接口代表对数组的处理,只有等到真正调用handler方法时

才确定对数组的处理行为。

public class AddArray implements Handler{

    int sum = 0;
    public void handler(int[] target) {
        for(int index=0;index<target.length;index++){
            sum += target[index];
        }
        System.out.println("目标数组和为:" + sum);
    }

}
public class PrintArray implements Handler{

    public void handler(int[] target) {
        System.out.print("目标数组为:" + target[0] + " ");
        for(int index=1;index<target.length;index++){
            if(index%10 !=0)
                System.out.print(target[index] + " ");
            else
                System.out.println(target[index] + " ");
                
        }
    }

}

  总结两种面向接口编程的方式,区别就是简单工厂模式是将方法行为规范单做成员变量传入,以Computer与Output为例,Output是Computer的一个功能,这个功能是已知的,

就将Output当做Computer的一个Field。

  而Handler对于ArrayHandler在调用之前是未知的,这时将Handler当做方法处理时的传入参数,在调用这个方法时才能确定。

以上是关于java编程时,要用到一个方法,但忘了它所处包名或类名,不知道应该用import导入哪个包(类),这时怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

新 Android在一个APP中通过包名或类名启动另一个APP

新 Android在一个APP中通过包名或类名启动另一个APP

2.1.10 java编程规范

JAVA编程执行多次

pycharm中debug报错的原因都有哪些

sendRedirect()和forward()方法的区别