Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ArrayOfObjects无法强制转换为Java.util.Collection_Java_Collections_Casting - Fatal编程技术网

ArrayOfObjects无法强制转换为Java.util.Collection

ArrayOfObjects无法强制转换为Java.util.Collection,java,collections,casting,Java,Collections,Casting,我用各种不同的方法用谷歌搜索了几个小时 下面是Java中调用ASP.NETC中的Web服务方法的代码# 这是webservice方法 [WebMethod]//Ska vara collection public List<Project> SelectAllProjects() { Controller contr = new Controller(); List<Project> project = contr.SelectAllProjects();

我用各种不同的方法用谷歌搜索了几个小时

下面是Java中调用ASP.NETC中的Web服务方法的代码#

这是webservice方法

[WebMethod]//Ska vara collection
public List<Project> SelectAllProjects()
{
    Controller contr = new Controller();
    List<Project> project = contr.SelectAllProjects();
    return project;
}
谢谢你的回答,我找不到任何相近的

p.s.已尝试
Object[]obj=(Object[])wws.selectAllProjects()
Project[]proj=(Project[])wws.selectAllProjects()

请求自动生成的ArrayOfProject.java类

package javaapp;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.util.*;


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrayOfProject", propOrder = { "project" })
public class ArrayOfProject {
    @XmlElement(name = "Project", nillable = true)
    protected List<Project> project;

    public List<Project> getProject() {
        if (project == null) {
            project = new ArrayList<Project>();
        }
        return this.project;
    }
}
我最近的例外情况列表:

C:\Oracle\Middleware\jdk160_24\bin\javaw.exe -client -classpath "C:\Users\MS\Desktop\Web Services\Java Uppgift 2\.adf;C:\Users\MS\Desktop\Web Services\Java Uppgift 2\JavaApp\classes;C:\Oracle\Middleware\wlserver_10.3\server\lib\weblogic.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.jrf_11.1.1\jrf.jar;C:\Oracle\Middleware\modules\com.oracle.toplink_1.0.0.0_11-1-1-5-0.jar;C:\Oracle\Middleware\modules\org.eclipse.persistence_1.1.0.0_2-1.jar;C:\Oracle\Middleware\modules\com.bea.core.antlr.runtime_2.7.7.jar;C:\Oracle\Middleware\modules\javax.persistence_1.0.0.0_2-0-0.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xmlparserv2.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xml.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.nlsrtl_11.1.0\orai18n-mapping.jar" -Djavax.net.ssl.trustStore=C:\Users\MS\AppData\Local\Temp\trustStore7859653733656575754.jks javaapp.Main
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2760)
    at java.util.Arrays.copyOf(Arrays.java:2734)
    at java.util.Vector.ensureCapacityHelper(Vector.java:226)
    at java.util.Vector.insertElementAt(Vector.java:554)
    at javax.swing.table.DefaultTableModel.insertRow(DefaultTableModel.java:357)
    at javax.swing.table.DefaultTableModel.addRow(DefaultTableModel.java:333)
    at javaapp.Controller.SelectAllProjects(Controller.java:56)
    at javaapp.View.btnAllProjects_actionPerformed(View.java:103)
    at javaapp.View.access$200(View.java:24)
    at javaapp.View$3.actionPerformed(View.java:68)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6289)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6054)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4652)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)

javaapp.ArrayOfProject
需要实现
Collection

作为替代方案,您可以创建一个实现集合的包装器


最简单的方法可能是创建ArrayList,复制所有元素并使用ArrayList。

考虑数组不是集合,
Arrays
类中有一个名为
asList
的实用方法,它将数组作为参数。

ArrayOfProject
是SOAP框架生成的类。它只是一个普通的Java类。检查它有什么getter,根据使用的框架,会有返回数组或列表的东西

在代码中编辑此行:

Collection c = (Collection)wws.selectAllProjects();


其余的将按原样工作。

您需要方法将数组转换为列表,即集合

您可以发布您的ArrayOfProject类吗?
SelectAllProjects()
方法实际上返回的是DefaultTableModel。我不确定您试图在哪里转换它。添加了该类的额外代码//那么我该怎么做一系列可行的项目呢?这段代码是唯一一段在编译之前都没有生成异常的代码。我应该把这个方法放在哪里?发布了那个类的代码,我应该如何“照常进行”:-)谢谢你的回答你真的没有看到列表中的getter吗?请再看看。除了getter.Ofc,没有别的了。我明白了,但我一生只做过几个小时的编程。但是,我不知道如何在我的控制器中使用它。谢谢:-)我尝试过这样做,但现在我在按下按钮后得到了一个异常列表。虽然程序一开始编译时没有错误。我也将发布我的视图类中的代码。因此,请接受这个答案,因为它回答了您的原始问题。不要把这个问题延伸到你的下一个问题,这不是它的工作原理。
private void btnAllProjects_actionPerformed(ActionEvent e) {
    try{
    Controller control = new Controller();
    DefaultTableModel DtM;
    DtM = control.SelectAllProjects();
    JTable selectProjectsTable = new JTable (DtM);
    }
    catch (Exception ex)
    {
        System.out.println(ex);
    }

}
C:\Oracle\Middleware\jdk160_24\bin\javaw.exe -client -classpath "C:\Users\MS\Desktop\Web Services\Java Uppgift 2\.adf;C:\Users\MS\Desktop\Web Services\Java Uppgift 2\JavaApp\classes;C:\Oracle\Middleware\wlserver_10.3\server\lib\weblogic.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.jrf_11.1.1\jrf.jar;C:\Oracle\Middleware\modules\com.oracle.toplink_1.0.0.0_11-1-1-5-0.jar;C:\Oracle\Middleware\modules\org.eclipse.persistence_1.1.0.0_2-1.jar;C:\Oracle\Middleware\modules\com.bea.core.antlr.runtime_2.7.7.jar;C:\Oracle\Middleware\modules\javax.persistence_1.0.0.0_2-0-0.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xmlparserv2.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.xdk_11.1.0\xml.jar;C:\Oracle\Middleware\oracle_common\modules\oracle.nlsrtl_11.1.0\orai18n-mapping.jar" -Djavax.net.ssl.trustStore=C:\Users\MS\AppData\Local\Temp\trustStore7859653733656575754.jks javaapp.Main
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2760)
    at java.util.Arrays.copyOf(Arrays.java:2734)
    at java.util.Vector.ensureCapacityHelper(Vector.java:226)
    at java.util.Vector.insertElementAt(Vector.java:554)
    at javax.swing.table.DefaultTableModel.insertRow(DefaultTableModel.java:357)
    at javax.swing.table.DefaultTableModel.addRow(DefaultTableModel.java:333)
    at javaapp.Controller.SelectAllProjects(Controller.java:56)
    at javaapp.View.btnAllProjects_actionPerformed(View.java:103)
    at javaapp.View.access$200(View.java:24)
    at javaapp.View$3.actionPerformed(View.java:68)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6289)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6054)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4652)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)
Collection c = (Collection)wws.selectAllProjects();
Collection c = wws.selectAllProjects().getProject();