# JavaDoc的使用

# 了解JavaDoc

在之前我张口就会告诉你一些用法, 例如String类里有replace方法, 这个方法是怎么用的, 我是怎么知道的呢? 我怎么保证我所讲的内容的正确性?
很简单, 我讲的用法其实都是查Java官方的JavaDoc查出来的.

29.jpg

BukkitAPI也有其JavaDoc可以查阅. 我们可以通过JavaDoc查询到BukkitAPI都有哪些API, 以及使用方法.

最新版本JavaDoc网址: https://hub.spigotmc.org/javadocs/spigot/index.html?overview-summary.html
旧版本JavaDoc网址(1.7.10): http://jd.bukkit.org/

国内有一群热爱开发的人做出了中文JavaDoc, 开发时可以用以参考.
最新版本中文JavaDoc网址: https://bukkit.windit.net/javadoc/
他们的GitHub地址: https://github.com/BukkitAPI-Translation-Group/Chinese_BukkitAPI

JavaDoc分为左右两个大部分, 左侧上方部分为所有的包, 左侧下方部分为所有的类, 右侧即为你选择的内容的详细信息. 使用时操作基本方法如下:

# 我怎么知道该找哪个类

你可能纳闷, 比如我想知道玩家是哪个类代表的, 应该怎么查?

第一种方法就是在左侧所有的类中找, 看看哪个类的名字可以翻译成“玩家”之类的意思, 说不定能找到.
第二章方法就是直接问别人, 别人踩完坑后告诉你.

# 寻找我们想要的信息

例: 现在我们有了一个Player对象, 如何向这个Player对象对应玩家发送一个消息Hello guy!?

Player p = 魔法; //这是我们现在获得的一个Player对象

# 利用JavaDoc找到想要的信息

对于我们不知道的东西, 我们应该查看JavaDoc. 这里我们想查询Player类里怎样给玩家发信息, 按照上面的方法打开Player类的详细信息. 利用浏览器的搜索功能Ctrl+F, 你可以试着搜一些与“信息”有关的英文词汇, 比如message等.
我们可以发现, JavaDoc中说Player类从CommandSender类里继承来了sendMessage方法, 很可能符合我们的需求.

点击sendMessage可以跳转到CommandSender类中对sendMessage方法描述的地方, 我们可以查看关于sendMessage方法有关的内容.

通过描述, 我们可以得知, sendMessage方法的作用是Sends this sender a message. 这样一想, Player继承了CommandSender, 我们想给玩家发信息就是给玩家这个Sender发信息, 这个方法就是我们要找的东西了!
那么我们就应该这样调用这个方法:

p.sendMessage("Hello guys!");

# 看看别人是怎么做的

很多插件都有向玩家发信息的功能. 如果一个东西自己实在找不到了, 那就看看别人是怎么弄的.

先随便找一个插件, 看清楚是Spigot插件, 并且插件介绍帖里提到它会定时给玩家发一个消息叫[系统] 您已进入挂机模式, 再次移动可取消挂机状态. 这个发送功能恰是我们需要的. 我们可以下载下来这个插件, 用反编译软件(例如:JD-GUI)打开它.

可能因为插件太简单, 作者并没有给这个插件混淆, 我们用JD-GUI可以正常反编译出源码, 顺着这个提示语一翻, 可以轻松找到这个发送信息功能的实现方式, 它用的正是p.sendMessage: