我被要求编辑一个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)class 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执行此操作,您将如何找出正确的语法?
答案 0 :(得分:7)
我会寻找你想要的东西。但是,我通常不会使用Sys-Out。相反,我会在那里添加一个断点,运行调试器。然后,使用“检查”来查看它返回的内容。
答案 1 :(得分: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文档。
答案 2 :(得分:1)
在具有对父对象引用的行上设置断点,在调试模式下启动应用程序,然后当程序在断点处暂停时,检查对象。你很快就会弄清楚如何获得你想要的价值。
所有IDE都允许您检查对象及其字段(是否为getter)。
不要编写代码来调试:使用java的内置调试功能。