Java 我是否可以实例化Journal Article对象并在没有构造函数的情况下设置每个属性?

Java 我是否可以实例化Journal Article对象并在没有构造函数的情况下设置每个属性?,java,liferay,liferay-6,web-content,Java,Liferay,Liferay 6,Web Content,当我运行build.xml并部署时,它不会编译 我想这样做,因为它看起来比使用JournalArticleLocalServiceUtil.addArticle进行的大型方法调用好得多 JournalArticle journalArticle = new JournalArticleImpl(); journalArticle.setDescription(description); 有人知道这在Liferay 6中是否可行吗 编辑:这是我得到的输出: Buildfile: C:\opt\l

当我运行build.xml并部署时,它不会编译

我想这样做,因为它看起来比使用JournalArticleLocalServiceUtil.addArticle进行的大型方法调用好得多

JournalArticle journalArticle = new JournalArticleImpl();
journalArticle.setDescription(description);
有人知道这在Liferay 6中是否可行吗

编辑:这是我得到的输出:

Buildfile: C:\opt\liferay-six1-dev\code\portlets\migration-portlet\build.xml
compile:
merge:
compile-java:
    [javac] Compiling 1 source file to C:\opt\liferay-six1-dev\code\portlets\migration-portlet\docroot\WEB-INF\classes
    [javac] C:\opt\liferay-six1-dev\code\portlets\migration-portlet\docroot\WEB-INF\src\com\liferay\migration\importdata\JournalArticleImport.java:138: cannot find symbol
    [javac] symbol  : class JournalArticle
    [javac] location: class com.liferay.migration.importdata.JournalArticleImport
    [javac]     private JournalArticle createJournalArticle(ExportedJournalArticle article) {
    [javac]             ^
    [javac] C:\opt\liferay-six1-dev\code\portlets\migration-portlet\docroot\WEB-INF\src\com\liferay\migration\importdata\JournalArticleImport.java:142: cannot find symbol
    [javac] symbol  : class JournalArticle
    [javac] location: class com.liferay.migration.importdata.JournalArticleImport
    [javac]         JournalArticle journalArticle = new JournalArticleImpl();
    [javac]         ^
    [javac] C:\opt\liferay-six1-dev\code\portlets\migration-portlet\docroot\WEB-INF\src\com\liferay\migration\importdata\JournalArticleImport.java:142: cannot find symbol
    [javac] symbol  : class JournalArticleImpl
    [javac] location: class com.liferay.migration.importdata.JournalArticleImport
    [javac]         JournalArticle journalArticle = new JournalArticleImpl();
    [javac]                                             ^
    [javac] 3 errors

BUILD FAILED
C:\opt\liferay-six1-dev\code\build-common-plugin.xml:403: The following error occurred while executing this line:
C:\opt\liferay-six1-dev\code\build-common.xml:94: Compile failed; see the compiler error output for details.

Total time: 1 second

好了,现在我们看到了编译器的失败,看起来您只是在类路径上没有正确的库


另外,看起来您正在com.liferay包下创建自己的类——除非您正在为liferay构建代码,否则不应该这样做。如果您只是在构建使用Liferay的代码,那么您应该在自己的组织包下构建它。

正如Jon提到的,如果您使用插件SDK,则不会复制实现类的库/jar。不幸的是,不允许您直接从插件创建JournalArticle对象,您必须使用JournalArticleLocalServiceUtil来创建该对象。

您声称它没有编译,但在我看来它应该编译。当您尝试时会发生什么?编辑的问题,当我运行build.xml并部署时,您仍然没有说会发生什么。。。或者你是否能够用其他方式编译。请阅读-如果你能避免我们猜测发生了什么,你肯定会更快地得到答案…它所缺少的类并没有丢失,所以你说。。。build.xml是什么样子的?你在哪里介绍liferay库?问题是它们是正确的,因为我正在其他地方使用它们!我可以使用构造函数创建对象,但不是这样。这并不意味着sense@ElizabethHamlet:你说的“别处”是什么意思?在同一建筑的其他地方?请注意,您已经在使用构造函数,因此不清楚您的意思。如果你能给我们提供更多的信息,这将非常有帮助——理想情况下,一个简短但完整的代码示例可以工作,一个类似的简短但完整的代码示例不工作。(整个类,包括导入。它不需要做任何有用的事情。)是的,在同一版本中。通过构造函数,如果我调用JournalArticleLocalServiceUtil.addArticle,它就会工作(userId、groupId、articleId、autoArticleId、版本、标题、描述、内容、类型、结构ID、模板ID、displayDateMonth、displayDateDay、displayDateYear、displayDateHour、displayDateMinute、expirationDateYear、expirationDateHour、expirationDateMinute、neverExpire、reviewDateMonth、ReviewDateDateDate、reviewDateYear、reviewDateHour、reviewDateMinute、neverReview、可索引、smallImage、smallImageURL、smallFile、Image、articleURL、serviceContext);我正在使用自己的组织路径,但在发布时已将其删除online@ElizabethHamlet:请编辑您的问题,而不是将代码放在注释中。请注意,您注释中的代码不是调用构造函数-它调用的是
addArticle
方法。您问题中的代码是调用构造函数。此外,使用一些一个简短但完整的示例的虚拟包名称—但将其以
com.liferay
开头只是增加了混淆。