我是编程新手,我想知道是否有一种方法可以找到我需要的特定事物的 java 类,而不是在论坛上向人们询问它们?我在 sun 网站上看到了 API,但是没有好的搜索选项可以找到适合我的类。
8 回答
如果您是 Java(或编程)新手,那么学习如何阅读和理解文档以变得自力更生是很重要的——这是减少对他人依赖的第一步,而且在大多数情况下案例,将提高您的学习和编程速度。
以下是一些提示和建议:
了解Java API 规范。
起初,API Specification 的 Javadoc 格式在没有任何搜索能力的情况下似乎有点动力不足,但我发现能够用浏览器浏览文档是非常强大的。
由于 Javadocs 只是 HTML 文件,因此可以在浏览器中轻松查看和导航它们,并且为页面添加书签也很容易。此外,API 规范可供下载,因此不必总是上网获取信息。
由于文档只是网页,使用浏览器的查找功能可以在页面中快速查找信息,如果失败,使用谷歌或您喜欢的搜索引擎查找文档非常快速和容易。
Google(或您最喜欢的搜索引擎)是您的朋友。
需要StringBuilder
课程信息?尝试以下查询:
第一个结果将是StringBuilder
该类的 Java API 规范页面。提示是java 6
在查询末尾附加字符串“”,这似乎在大多数情况下将 API 规范带到了顶部。
熟悉 API 规范的结构。
Javadoc工具的表示结构非常漂亮且合乎逻辑:
+-----------+-------------------+
| | |
| Packages | |
| | |
+-----------+ Details |
| | |
| Classes | |
| | |
+-----------+-------------------+
Javadoc 分为三个框架。
- 左上框:Java 平台 API 的所有包的列表。
- 左下框架:列出所选包中的所有类。
- 右框:当前选择的包或类的详细信息。
一般来说,查找类是从左上框选择包开始,然后在左下框查找类,最后在右框浏览详细信息。这个想法是:
Package -> Class -> Details
右侧框架中的类和包的细节也非常结构化。对于类,结构如下:
- 班级名称
- 继承层次
- 实现的接口
- 相关课程
- 课程信息和描述;用法示例。
- 字段摘要
- 构造函数总结
- 方法总结
- 字段/构造函数/方法详细信息。
当我在查找有关方法的信息时,我将向下滚动到方法摘要,找到我想要的方法,然后单击该方法名称将跳转到方法详细信息。
此外,关于该课程的所有内容都记录在一个页面中 - 一页似乎信息太多,但它确实可以轻松地从一个位置获取您需要的有关该课程的所有信息。在其他文档格式中,可能需要在多个页面之间翻转以获取有关同一类中多个方法的信息。使用 Javadoc 格式,所有内容都在一页中。
学习 Java 平台 API
下一步是学习 Java Platform API 的重要包。这将有助于从平台 API 中的大量类中快速查找类。
别担心,慢慢来——你不需要一次学习所有东西!
一些感兴趣的软件包是:
java.lang
-- 包含在每个 Java 程序中自动导入 的类,如String
、System
、和其他。Integer
java.util
-- 包含 Java 集合(例如List
、Set
和Map
它们的实现)Date
、Random
和其他实用类。这可能是第一个用于查找对执行常见操作有用的类的包。java.io
-- 与输入和输出有关的类,如File
、Reader
s 和Writer
s 以及各种Stream
s。java.awt
-javax.swing
对于图形用户界面,Java 使用 Abstract Window Toolkit 或 Swing,这两个包用于处理 Java 中的 GUI。
知道类在哪里并开始了解在大量文档中的查找位置将使查找信息变得更加容易。可能需要一段时间来适应它,但是一旦你掌握了它,它应该会容易得多,你将能够自己找到信息。
祝你好运!
大多数情况下,如果它是语言的核心(不是第 3 方库),我使用以下链接:
http://java.sun.com/javase/6/docs/api/allclasses-frame.html
其中列出了 Java SE 中的所有类。
要知道该类是否有效,我尝试按 Ctrl-F 并猜测哪个类是合适的。
最终随着时间的推移,当你习惯了那里的课程时,搜索会更容易。
例如,假设您想使用一个数组:
Ctrl+F 数组产生:
Array
Array
ArrayBlockingQueue
ArrayDeque
ArrayIndexOutOfBoundsException
ArrayList
Arrays
ArrayStoreException
ArrayType
ArrayType
我单击每个并查看文档。其中一些毫无意义,其中一些正是我所需要的。
有时它可能不会很直接地工作。让我们如何创建一个窗口:
Ctrl+F 不显示 JFrame 这是正确的答案,但这只是调整你的感觉:)
我希望这有帮助。
这取决于你的意思。例如,如果您想知道确切类的位置,例如“BufferedReader 又在哪里?”,我在 Google 上搜索:
site:java.sun.com BufferedReader
如果您想知道如何完成一项任务,例如“我怎样才能在不回显的情况下从终端读取密码?” (java.io.Console),有时只能通过征求意见第一次弄明白。
- 您在寻找 java 库吗?尝试谷歌搜索,例如数据库连接池java
- 您是否在核心 Java 库中寻找类?安装 IDE 并查找类,例如在Eclipse中尝试 Ctrl-Shift-T 并输入名称:LinkedList。请注意,在 Eclipse 中,您还可以使用通配符,例如*List来获取名称以 List 结尾的所有类;
- 在包中寻找特定的类?试试Sonatype 的 Maven 存储库,单击高级搜索,然后在新的下拉列表中选择类名。
我会推荐一本书,例如Java In A Nutshell,它是 Java SE API 的绝佳参考(请注意,它仅涵盖 Java 5,但对于大多数需求来说应该没问题)
Java 教程http://java.sun.com/docs/books/tutorial/和 Java API http://java.sun.com/javase/6/docs/api/是查找的重要资源找出如何做某事以及使用什么课程。
我喜欢使用DocJar。
甚至还有一个 Eclipse 插件,但我还没有尝试过。
http://eclipse-plugins.2y.net/eclipse/plugin_details.jsp?id=959
我同意教程很好,搜索引擎一般都很棒(但现在它们都把你带回到 SO)。除了论坛,一个不容错过的资源是你身边的程序员。如果您是开发团队或班级的一员,您可以获得所需的答案,或者您可以协作进行搜索。如果您不确定自己是否了解您正在寻找的内容,那么人工帮助您通常会更容易。