如何更快地编写Java代码

3

我被要求编辑一个Java文件,以便它可以检索一个值。该值的名称并不重要,但它是SiteCategory。

在Eclipse的帮助下,我能够找到看起来像我要找的方法。

然后我创建了这七行代码,以查看它们中的哪一行返回我要查找的内容。

System.out.println("1) " + p_objRecord.getSiteCategoryList().toString());
System.out.println("2) " + p_objRecord.getSiteCategoryList().getClass());
System.out.println("3) " + p_objRecord.getSiteCategoryList().getSiteCategory().toString());
System.out.println("4) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).getCategoryDescription());
System.out.println("5) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).toString());
System.out.println("6) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).getCategory().getName());
System.out.println("7) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).getCategory().toString());

这是输出结果

1) com.webservices.lists.farming.SiteCategoryList@47c7b1f5

2) 类 com.webservices.lists.farming.SiteCategoryList

3) [Lcom.webservices.lists.farming.SiteCategory;@105e924

4) >P align=left>

5) com.webservices.lists.farming.SiteCategory@ca143fc6

6) 产品:杂项:瓶子

7) com.webservices.platform.core.RecordRef@78f8dcf1

第6条正是我想要的。我花了一些时间才到达这一点,并找出正确的语法。如果您被要求使用不熟悉的API进行此操作,您会怎么做以找出正确的语法?


1
对我来说,这更多是关于“如何更快地阅读Java代码”。 - yem yem yen
如何使用递归基于反射的toString-builder - matts
我会仔细阅读API文档。 - Patricia Shanahan
3个回答

7

我会寻找和你一样的东西。不过,我通常不使用Sys-Out。相反地,我会在那里添加一个断点,使用调试器运行到该点。然后,使用“inspect”查看返回的内容。


3
我会查看导入SiteCategory的代码,然后看是否能找到some.package.name.SiteCategory的javadoc文档。
实际上,如果没有某种类型的javadoc或者实际源代码,你基本上只能希望方法名足够描述。
因此,在文件中,您应该看到SiteCategory的类或接口定义,或者上述类的"import"块,它看起来像
 import org.myorg.site.SiteCategory;

如果你没有指定的话,那么实际上它就在与包声明相同的包中(即文件中第一个非注释、非空白行)。因此,
 package com.mypackage.here;

这段话的大意是:如果一个 com.mypackage.here.SiteCategory 在导入语句或 '.java' 文件中定义失败,那么就会出现这种情况。然后根据源代码的可用性,可能会打开源代码,或者如果源代码不可用,则查找一些已发布的 javadoc 文档。

1

在引用父对象的行上设置断点,在调试模式下启动应用程序,然后当程序在断点处停止时,检查对象。您很快就会找出如何获取所需的值。

所有IDE都允许您检查对象及其字段(无论是否有getter)。

不要编写调试代码:使用Java的内置调试功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接